Académique Documents
Professionnel Documents
Culture Documents
ATICA DISCRETA
BENEDITO MELO ACI
OLY
FTC 2001
2
Conte udo
1 Cinco algoritmos importantes nos inteiros 5
1.1 Introduc ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Algoritmos para os inteiros . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2 Algoritmos de mundanca de base 19
2.1 Introduc ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Os inteiros em diferentes bases . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Representa cao dos inteiros num computador . . . . . . . . . . . . . . . . . 27
2.4 N umeros reais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.5 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3 Conjuntos, Func oes e Relacoes 43
3.1 Introduc ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2 Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.3 Func oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.4 Relac oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.5 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4 Logica 71
4.1 Introduc ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2 Raciocinando com hipoteses logicas . . . . . . . . . . . . . . . . . . . . . . 80
4.3 Predicados & Quanticadores . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.4 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5 Provas 91
5.1 Introduc ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.2 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6 Recursao 111
6.0.1 EXERC
ICIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
3
4 CONTE
UDO
7 Estruturas Algebricas 135
7.1
Algebras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7.2 Estruturas ordenadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
7.3 Corpos nitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
7.4 EXERC
ICIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
8 Grafos e arvores 167
8.1 Introduc ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
8.2 Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
8.3
Arvores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
8.4
Arvores geradoras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
8.5 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
9 Contar 195
9.1 Tecnicas de contar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
9.2 O binomial e teoremas multinomiais . . . . . . . . . . . . . . . . . . . . . . 213
9.3 Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
9.3.1 Permutac oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
9.4 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Bibliograa 231
Captulo 1
Cinco algoritmos importantes nos
inteiros
1.1 Introducao
A seguir apresentaremos as solucoes algortmicas para cinco problemas envolvendo n umeros
inteiros. Deveremos aprender como ler e usar esses algoritmos, conhecer os fatos apre-
sentados sobre os inteiros, primos e o maior dos divisores comuns. Num nvel mais alto,
deveremos ser capazes de ler e usar algoritmos similares quando encontr a-los e projetar
nossos proprios algoritmos para resolver problemas sobre os inteiros.
1.2 Algoritmos para os inteiros
Um computador eletronico moderno(digital) computa func oes no mais baixo nvel, usando
as mudan cas de estados de uma corrente eletrica de ligado(0) para desligado(1), alteran-
do a voltagem entre dois valores ou revertendo a polaridade de material magnetico. Nao
teremos que saber muito mais sobre como isso e feito, mas neste nvel basico uma compo-
nente da maquina tem dois estados que podem ser tomados como representando os dgitos
0, 1, ou os rotulos logicos verdadeiro(t), falso(f), `a nossa conveniencia. Uma estrutura
matematica construda neste fundamento digital e a estrutura dos n umeros inteiros e por
isso comecaremos com ela aqui. Uma maneira natural de instruir o computador para
efetuar uma tarefa e por meio de um algoritmo, que para nos signica um procedimento
passo a passo para realizar uma tarefa. Para um estudante de computacao um algoritmo
esta entre um problema a ser resolvido e o programa para resolve-lo. Para um estudante
de matematica um algoritmo representa uma soluc ao construtiva para um problema em
oposic ao a um argumento de que a soluc ao existe. Davis e Hersh
1
discute o contraste
1
Davis, P.J.and Hersh, R., (1981), The Mathematical Experience, Havester.
5
6 CAP
_
se a divide n exatamente ent ao
dar a primo o valor f
caso contrario
incrementar o valor de a por 1
O algoritmo esta correto? ele e eciente?
E facil de entende-lo?
Observe tambem que o algoritmo fornece o resultado correto para n = 2, mas esse
valor foi excudo da precondic ao. Alterando a precondic ao para n 2, seria possvel
fornecer 2 como entrada. A nova precondic ao diz-se mais fraca que a original, pois
ela adimite mais entradas validas. So poderemos mostrar que um algoritmo esta correto
estabelecendo que ele fornece os resultados corretos para todas as entradas. Poderemos
mostrar que ele esta incorreto estabelecendo que ele falha para alguma entrada.
Corretude e precondicao mais fraca serao tratados mais adiante em nosso curso.
Examinaremos tambem no decorrer do nosso curso a questao da eciencia.
1.2. ALGORITMOS PARA OS INTEIROS 13
A questao da legilibilidade tem um conte udo subjectivo, embora de grande importancia
para o prossional da computacao. Veremos algoritmos escritos de muitas maneiras, em
diferentes livros, e por isso deveremos ser capazes de ler diferentes estilos.
Problema 4. Quais sao os fatores primos de um inteiro maior do que 1?
Para qualquer inteiro positivo, n maior que 1, pretendemos produzir uma lista de
seus fatores primos, repetindo os fatores quando apropriado. Por exemplo, 12 tem como
fatores primos 2, 2, 3.
E necessario testar a divisibilidade de n, para os n umeros entre 2 e
ICIOS 17
1.3 Exerccios
1. Use o algoritmo 2 para achar o quociente e o resto quando:
(a) 18 e dividido por 7.
(b) 18 e dividido por -7.
(c) -18 e dividido por 7.
Em cada caso calcular a precondic ao e a poscondic ao.
2. Qual e o maior n umero que deve ser testado como um fator possvel, antes que seja
certo que 1987 e primo?
3. Determine se 11729 e primo.
4. Um n umero perfeito e aquele para o qual a soma de todos os seus fatores menores
que ele e igual a este n umero. Portanto, 6 e um n umero perfeito. De fato, 1, 2 e 3
sao fatores de 6 cuja soma e 6. Construir um algoritmo para testar se um n umero
e perfeito.
5. Achar o maximo divisor comum de 3589 e 999, usando o algoritmo de Euclides. O
limite superior para o n umero de divisoes exigidas e
2log
2
999|.
Calcule este limite superior.
6. Use o algoritmo 4, dos fatores primos, para achar os fatores primos de 61 e 64. Quais
dessas entradas faz mais uso do laco enquanto.
7. Seja m um inteiro positivo maior que 1. Ent ao, os inteiros 0, 1,...,(m-1) mais as ope-
rac oes de adicao e multiplicacao, denidas abaixo, constitui um sistema numerico,
chamado Z
n
.
A adicao de um par de n umeros x, y em Z
n
, e denida cono r, o resto da divisao
de (x +y) por n. Escrevemos
x +y r mod n
e dizemos que x+y e congruente a r modulo m. Por exemplo, Z
11
consiste dos
inteiros 0, 1, 2,...,10, e
18 CAP
UMEROS REAIS 33
Observe que esta denic ao e equivalente `aquela dada anteriormente para a subtracao,
se denirmos o negativo do racional
r
s
por
r
s
.
multiplicacao
p
q
r
s
=
pr
qs
divisao, desde que r ,= 0
p
q
r
s
=
ps
qr
Observe que esta denicao pode ser reescrita em termos da denicao de mul-
tiplicac ao, se denirmos a inversa de um racional (
r
s
) como sendo
s
r
. Ent ao,
para dividir por um racional, multiplique-o pelo seu inverso.
Mas o conjunto dos racionais introduz um novo problema. Um n umero racional pode
ser representado por innitos pares de inteiros diferentes. Por isso precisamos de um
mecanismo para decidir se pares de inteiros distintos representam o mesmo racional ou
nao.
Por exemplo, 1808/1017 e 16/9 sao o mesmo n umero. Uma abordagem para
resolver esse problema e denir igualdade de n umeros racionais.
Denicao 3 (igualdade)
p
q
=
r
s
se e somente se ps = qr.
Outra maneira de resolver esse problema e expressar um racional
p
q
numa forma padrao.
Isto pode ser feito expressando o racional no mais baixo termo, por exemplo,
1808
1017
=
11316
1139
=
16
9
onde 113 e o maximo divisor comum de 1808 e 1017. Ou pode ser feito estendendo a
expansao literal de um n umero a racionais, pelo processo usual da divisao, estendido
alem do ponto decimal. Por exemplo,
1808
1017
= 1,7777...
= 1, 7
16
9
= 1, 7
A ultima alternativa introduz uma outra diculdade. Algumas calculadoras devolvem
1.7777778 para
16
9
. Podemos achar que isso e uma aproximac ao razoavel. No entanto, para
conviver com o tamanho nito do espaco de armazenamento de algumas outras maquinas,
e necessario aproximar esse n umero para uma resposta correta. O estudo dos calculos que
sao sensveis a erros pequenos e parte da analise numerica, assunto muito especializado
para o objetivo deste curso.
Existem dois problemas a considerar:
34 CAP
UMEROS REAIS 35
Usando o algoritmo da divisao como no exemplo acima obteremos: 13/61 = 0, 213114754098360655737704918032786885245901639344262295081967,
apos o que os dgitos se repetem.
Para divisoes por 61 existem, alem de zero, 60 restos possveis. Portanto o tamanho
do maior ciclo e 60, que no caso do nosso exemplo foi atingido.
A espansao literal de p/q, onde p e q sao inteiros, ou termina ou entra em ciclo de
comprimento no maximo q - 1. A regra mais simples e parar quando foi atingido algum
n umero especco de dgitos.
O algoritmo usado em nossa calculadora parece parar apos serem calculados 9 dgitos,
sendo que os dois ultimos dgitos sao usados para arredondar para 7 dgitos. Assim a
nossa calculadora gera
0, 7272727, 0, 75, 0, 2131148
nos exemplos dados acima.
N umeros racionais expressos em binario
As cadeias de dgitos
a
k
...a
1
a
0
.a
1
...a
s
(base x)
representa a espansao literal
a
k
x
k
+... +a
1
x +a
0
+a
1
x
1
+.... +a
s
x
s
Exemplo 22 Converter 11, 011
2
para decimal.
11, 011
2
= 2+1+
1
4
+
1
8
=
27
8
= 3, 375 (decimal) por divisao usual (ou por calculadora).
Exemplo 23 Converter 1101, 101101
2
= 877
10
. Portanto:
1101,101101 = 1101101101/1000000 (binario)
= 877/64 (decimal)
= 13,703125 (decimal)
Os exemplos acima apresentam duas abordagens para a convers ao em decimal de um
racional expresso em binario.
Problema 7 Como poderemos converter para binario uma fracao expressa em decimal?
36 CAP
UMEROS REAIS 37
(a) Seis dgitos sao visveis apos o ponto decimal. Na hipotese de que a calculadora tem
outros dgitos nao apresentados e o n umero apresentado foi obtido por arredonda-
mento, o ultimo dgito apresentado deve ser o sexto dgito calculado mais proximo
da resposta exata. Na pratica, isto signica que se o dgito omitido representa a
metade ou mais do valor do ultimo dgito visvel, entao esse dgito foi aumentado de
1. Os n umeros no intervalo 0.71428450,7142854999... arredonda para a resposta
dada. O maior valor absoluto possvel e = 0, 000005.
(b) Truncamento e a ac ao de tirar fora ou ignorar os dgitos nao apresentados. Os
n umeros no intervalo de 0,7142850,714285999.. trucam para a resposta dada. O
maior erro absoluto possvel e = 0, 000001.
erro absoluto
[e[ = [y x[
erro relativo
[e[
[x[
=
[y x[
[x[
percentagem do erro relativo
100[e[
[x[
=
100[y x[
[x[
Na pratica dividimos por [y[, pois x e desconhecido, e trocamos e por .
N umeros irracionais
Todo n umero racional (
p
q
) tem uma espansao decimal que ou para, ou permanece em ciclo
sem m, com a mesma sequencia de dgitos. Mas existem n umeros com espansoes decimais
que nem termina nem permanece em ciclo. Tais n umeros nao podem ser expressos como
a razao de dois inteiros e por isso sao chamados irracionais.
Exemplos de n umeros irracionais sao 1,10110010001...,
2, , log
10
7, ln3, sen
10
. Exis-
te uma quantidade innita de n umeros irracionais.
Para armazenar os n umeros irracionais numa maquina, eles sao aproximados por ra-
cionais de comprimento xo, da mesma maneira como os racionais que cam em ciclo ou
sao muito longos.
Um algoritmo iterativo para calcular
k
Problema 8 Como poderemos achar a raz quadrada de um n umero real positivo?
38 CAP
k )
Metodo: Dar um valor a x. Qualquer n umero real positivo.
i 0 (inicaliza i).
Repita
_
_
_
x (x +
k
x
)/2
(x e a aproximac ao corrente de
k)
i i + 1
ate x esta proximo a
k.
y x
O que signica proximo?
x esta proximo a
k.
Exemplo 26 Calcule
25
Dar a x o valor inicial 25/2. Estabelecer 0,02 para . Usar o criterio (2) de proxi-
midade.
x i [x
i
x
i1
[ ([x
i
x
i1
[ 0, 02)
12,5 0
7,25 1 5,25 f
5,349 2 1,9 f
5,011 3 0,338 f
5,000013 4 0,011 t
2.5. EXERC
ICIOS 39
Exemplo 27 Calcular
10 como
uma aproxima cao para ?
Dar a x o valor inicial 5. Estabeleca 0,0001 para . Use o criterio de proximidade
(1).
x i x
2
([x
2
10[ 0, 0001
5 0
3,5 1 12,25 f
3,17857 2 10,1033 f
3,162319 3 10,00026 f
3,162277 4 10,00000 t
O valor exato para quatro casas decimais e
k esta entre
x e k/x. Alem disso, tirando a media desses dois valores obtem-se uma melhor aproxi-
macao para a raz quadrada de x.
Uma prova melhor( isto e, mais simples e mais geral) de que esse algoritmo esta correto
usa o metodo de Newton, o qual, no momento, esta fora do nosso escopo.
2.5 Exerccios
1. Dar a espansao literal de:
(a) 1209
10
(b) 110101
10
(c) C10AA
16
2. Converter os seguintes n umeros para binario e em seguida para hexadecimal:
(a) 234
10
(b) 1024
10
(c) 255
10
(d) 747
8
(e) 326
8
Explicar, na linguagem comum, como fazer (d) e (e) sem converter para decimal.
3. Converter para decimal:
(a) ABCD(hexa) (b) 12073(octal) (c) 1011101(binario)
4. Calcular os seguintes em binario:
(a)10110 + 1001 (b) 101010 11011 (c) 110 110 (d) 1110100/101
5. Calcular o seguinte em hexadecimal:
(a) 347A + 8741 (b) 23B6 428
40 CAP
5?
15. Arquimedes(287-212 AC) estabelece
1351
780
>
3 >
265
153
. Qual dessas aproxima coes e
mais proxima de
3?
Qual e o erro absoluto ao se tomar
1351
780
como uma aproximacao para
3?
16. Converta:
(a) 2324,05(base 10) para a base 16.
(b) 100010,1111(base 2) para a base 10.
(c) 1AA,2(base 16) para abase 2.
2.5. EXERC
ICIOS 41
17. Considere o seguinte algoritmo:
Entrada: x, racional entre 0 e 1, expresso em decimal.
Sada: x expresso em binario corrigido a oito dgitos.
Registre os dgitos na medida em que forem sendo encontrados,
a partir da vgula para a direita.
Metodo: a x
i 1
enquanto a > 0 e i 8 :
_
_
a a 2
se a 1
entao
a a 1
registre 1
senao
registre 0
i i + 1
(a) dado a entrada x = 0, 6
10
, achar a sada.
(b) Explique em palavras o que o algoritmo faz. Como identicar ciclos na sada?
18. O algoritmo dado abaixo acha as potencias inteiras positivas de um n umero real.
Entrada: x real e n um inteiro positivo.
Sada: p real. (p deve ter o valor x
n
)
Metodo: Suponha que p tem valor 1.
enquanto n ,= 0 :
divida n por 2 para obter o quociente q e resto r.
se r = 1 ent ao
substitua o valor de p por p*x.
suponha que n tem o valor q
suponha que tem o valor x*x
Percorra o algoritmo para a entrada x = 3 e n = 13.
19. O seguinte e um algoritmo iterativo para calcular
2.
42 CAP
2)
real
Precondic oes: x > 0, > 0
Sada: y real. ( y e o valor aproximado desejado para
2)
Metodo: a x
enquanto [a
2
2[ > :
_
a
1
a+1
a a + 1
y a
(a) Dado = 0, 01 e x = 2, percorra o algoritmo.
(b) Qual e o erro absoluto na aproximac ao para
E comum usar letras min usculas, x, y, a, b, ... para elementos e mai usculas A, B, S,
43
44 CAP
e um alfabeto de smbolos.
Um conjunto sem nenhum elemento e chamado conjunto vazio, denotado por ou .
Exemplo 28 Seja Char o conjunto universal, constitudo de todos os carac-
teres. Achar S, o conjunto dos caracteres na palavra saudade.
Solucao: S = s,a,u,d,e.
Observe que os elementos podem estar em qualquer ordem e nao podem ser repetidos.
A correspondente estrutura que permite a repetic ao de elementos e chamado multicon-
junto. Por exemplo, o multiconjunto dos fatores primos de 12 e 2,2,3.
Um conjunto pode ser descrito:
listando seus elementos: 3,5,2,6,7,1,0,4.
por descric ao: A e o conjunto dos dgitos na base 8.
usando um predicado:
A = x inteiros [ x e nao negativo e e menor que 8.
O smbolo [
.
A
= U A
Diferenca simetrica
A diferenca simetrica de A e B, denotado por AB, e o conjunto dos elementos que estao
em exatamente um de A e B.
AB = x[x A ou x B mas nao em ambos
Exemplo 30 Quantos inteiros de 1 a 1000 nao sao divisveis por 9 e 12?
Solucao: Tome o conjunto universal como sendo todos os inteiros de 1 a
1000, inclusive.
Seja A o conjunto dos inteiros divisveis por 9. Seja B o conjunto dos inteiros
divisveis por 12.
Entao, pretendemos achar n(U (A B)).
A = 9, 18, 27, ..., e n(A) = 1000/9| = 111
1
B = 12, 24, 36, ..., e n(B) = 1000/12| = 83
Observando o diagrama de Venn para conjuntos, constatamos que quando sub-
traimos 111 e 83 de 1000, ou em outras palavras, quando subtraimos os con-
juntos A e B de U, subtraimos duas vezes A B.
Mas,
A B = 36, 72, ... e n(A B) = 1000/36| = 27,
Portanto,
n(U A B) = n(U) n(A) n(B) +n(A B)
= 1000 111 83 + 27
= 833
1
Lembre-se que m/n| denota o quociente(inteiro) da divisao de m por n. No nosso caso quando
dividimos 1000 por 9 achamos quociente 111 e resto 1.
48 CAP
nao e 0 ou o caractere de
espaco e / A, para todo alfabeto A. A
0
e o conjunto que consiste de .
Um conjunto universal adequado para discussao de strings seria o conjuntos dos strings
de todos os comprimentos de um alfabeto dado.
Denicao 19 (Fecho) O fecho(Kleene) do alfabeto A e o conjunto de todas as strings,
de todos os comprimentos, que podem ser construdas dos caracteres de A:
A
= A
0
A
1
A
2
... =
_
i=0
A
i
O conjunto de todas as strings nao vazias de A e denida por
A
+
= A
1
A
2
... =
_
i=1
A
i
Os conjuntos A
e A
+
sao conjuntos universais possveis para strings. Eles sao de-
nidos construtivamente, nao correndo o risco, portanto, de paradoxo.
Denicao 20 (Concatena) A operacao binaria concatena sobre A
e uma funcao de
A
em A
denida por
concatena(, ) =
para toas as strings , A
.
Exemplo 66 concatena(011,01) = 01101
Exemplo 67 concatena(alfa, beto) = alfabeto.
3.5. EXERC
ICIOS 65
3.5 Exerccios
1. (a) Escrever o conjunto de caracteres na palavra matematica
(b) Gerar todos os subconjuntos de a,b.
(c) Use um predicado para descrever o conjunto 1,2,4,8,16,.....
2. Descreva em palavras os seguintes conjuntos.
E verdade que A B = C? Explique
sua resposta. O conjunto universal e o conjunto dos inteiros.
A = j[j = 8t e t Z
B = j[j = 6t e t Z
C = j[j = 48t e t Z
3. Achar o n umero de inteiros positivos menor ou igual que 100 que sao mpares ou o
quadrado de um inteiro. O conjunto de tais inteiro esta bem denido? 25 pertence
a ele?
4. Dois dados sao arremecados. Cada um e numerado 1,2,...,6 de modo que o conjunto
de todas as sadas, S, possveis e (1,1),(1,2),(2,1),...,(6,6). O que e n(S)? Partir
S em subconjuntos nos quais a soma dos dois dados sejam a mesma.
5. Para todos conjuntos A, O conjunto potencia de A, escrito T(A), e denido como
sendo o cnjunto de todos os subconjuntos de A.
(a) Dado A = a,b,c achar T(A).
(b) Dado n(S) = k, achar o n umero de elementos em T(S).
6. Uma tela de 80 colunas e 25 linhas esta denida pelo conjunto
S = (c, r)[(c, r) N N e 1 c 80 e 1 r 25
onde c representa o n umero de colunas e r o n umeros de linhas de uma posicao de
caracteres ou ponto sobre a tela. S e o conjunto universal para esta questao.
As janelas W
1
, W
2
sao denidas por
W
1
= (c, r)[20 c 40 e 10 r 20
W
2
= (c, r)[30 c 50 e 5 r 15
66 CAP
ICIOS 67
Calcule (a) f(7) (b) g f(7) (c) g(7) (d) f g(7).
12. Dena a funcao f pela funcao calculadora ln, e a funcao g por pela calculadora e
x
.
Achar f g(3.6). Comente sua resposta.
13. Explique porque, se n e um inteiro mpar, entao
(n + 1)/2| = (n + 1)/2
14. Uma funcao f : A B diz-se uma-uma se e somente se,
para todo x, y A se x ,= y entao f(x) ,= f(y)
Mostre que a funcao
g : Z Z
g(n) = n mod 8
nao e uma - uma.
15. A funcao sucessor e denida por
sucessor : N N
sucessor(n) = n + 1
A funcao sucessor e total?
E uma - uma?
E sobre? A funcao sucessor tem inversa?
16. A funcao g e denida sobre o conjunto Z
7
= 0, 1, 2, 3, 4, ..., 6 por
g : Z
7
Z
7
g(x) = 2x + 3 mod 7
(a) Achar o valor de g(0), g(1), g(3).
(b) g e uma funcao total?
68 CAP
ICIOS 69
21. Nesta questao o smbolo representa e e o smbolo representa ou. Seja S o
conjunto de todas as posicoes de tela denida pelo conjunto
S = (c, r) Z Z[(1 c 80) (1 r 30)
Seja B = t, f o conjunto dos valores booleanos. A relacao segue e denida por
segue : S S B
(c
1
, r
1
) segue (c
2
, r
2
) =
_
t se (c
1
c
2
) (r
1
= r
2
) (r
1
> r
2
)
f caso contrario
(a) Descreva a relacao segue em palavras.
(b) A relacao segue nao e uma relacao parcial pois, ela falha duas das tres proprie-
dades exigidas para uma ordem parcial. Qual dessas tres propriedades de uma
ordem parcial se verica para segue? Escreva uma armativa do que deve ser
provado para mostrar que segue satisfaz as propridades que voce alega.
22. A relacao divide(escrita , nesta questao) e denida sobre os n umeros naturais
por
ab = t
se e somente se b = ka, para algum n umero natural k e a ,= 0.
Prove que e antisimetrica.
23. A relacao potencia de(escrita , nesta questao) e denida sobre os inteiros por
ab = t, se e somente se a = b
n
, para algum n umero natural n.
Prove que e antisimetrica. Quais das propriedades de precisariam ser provadas
para mostrar que ela e uma ordem parcial?
24. A relacao divide e denida sobre o conjunto 3,9,27. a divide b signica
b = ma, para algum inteiro positivo m.
Mostre que divide e transitiva. Explique porque divide e uma ordem total.
25. Liste os primeiros termos da sequencia a
0
, a
1
, ..., a
n
, ..., onde
a
n
=
_
2 se n = 0
a
n1
+ 2, senao
70 CAP
2.
29. O conjunto universal para esta questao e
U = s Z[1 < x < 101
Os seguintes subconjuntos de U sao denidos:
S
k
= s[ke o maior fator primo de x
(a) Descreva os conjuntos S
5
, S
11
.
(b) Qual e o valor de n(S
41
)?
Explique por que S
2
, S
3
, S
5
, ..., S
97
, formam uma particao de U.
Captulo 4
Logica
4.1 Introducao
Apos completar esta parte deveremos ser capazes de analizar proposicoes compostas,
traduzir do Portugues para expressoes simbolicas da logica e raciocinar corretamente a
partir das leis logicas aceitas. Deveremos ser capazes de usar os quanticadores existencial
e universal com predicados.
Logica e a ciencia do raciocnio. Nesta parte, estamos interessados, principalmente,
com logica matematica, incluindo uma algebra de smbolos logicos. A logica simbolica
moderna foi estabelecida por George Boole(1815-64) e outros para possibilitar o raciocnio
separado das ambiguidades possveis e argumentos emotivos que podem estar presentes
na linguagem comum. A ideia de um calculo universal no qual todas as verdades do
raciocnio seria reduzidas a uma especie de calculo tem incio com Leibniz(1646-1716).
Este sistema de logica simbolica, com sua algebra associada, foi aproveitado por aqueles
que construiram os primeiros computadores, como um modelo de raciocnio correto que
seria implementado por circuitos eletronicos.
Existem no mnimo seis razoes porque estudamos logica.
No nvel do hardware, o uso de logica simbolica pode simplicar enormemente os
projetos de circuitos logicos para implementar instrucoes.
No nvel de software, um conhecimento de logica simbolica ajuda no projeto de
programas. Muitas linguagens de computadores usa variaveis booleanas e seus ope-
radores associados. As tabelas verdades sao particularmente uteis para decidir se
duas assertivas sao logicamente equivalentes.
No nvel da especicacao de algoritmos, a logica simbolica contribui com uma lingua-
gem precisa. Embora ainda num estagio de desenvolvimento, existe uma promessa
de que a logica simbolica ajudara no projeto, prova de corretude e manutencao de
programas.
71
72 CAP
ITULO 4. L
OGICA
Varias linguagens de computadores sao baseadas em logica, por exemplo, Prolog.
Muitos acreditam que as linguagens baseadas em logica tem vantagens na analise de
informacao num banco de dados.
No raciocnio matematico e na construcao de provas matematicas, um estudo de
logica pode ser util.
No raciocnio comum, a logica pode ser util para esclarecer argumentos.
Proposic oes compostas e tabelas de verdade
Os objetos basicos de nossa discussao podem ser chamados assertivas ou proposicoes. A
propriedade essencial de uma arsertiva ou proposicao e que ela tem associada a si um
rotulo(t) ou (v), mas nao ambos.
Exemplo 68 1. 6 e primo. 2. 5 e primo. 3. (3 < 2). 4. Salvador e a
capital do Brasil. 5. H
2
O e um acido. 6. O lucro da transacao e 10.000
reais. As assertivas de 1. a 4. tem rotulos f, t, t, f. Para 5. e 6. deveremos
consultar um qumico e um economista, respectivamente.
E claro que, verdadeiramente, nao estamos interessados nas atuais verdades ou falsi-
dades das proposicoes acima. A nos interessa como calcular o valor de verdade de uma
sentenca composta a partir dos valores de verdade das sentencas elementares, tais como
aquelas listadas acima. A natureza exata das assertivas elementares pode ser deixada para
os especialistas no campo particular. As assertivas podem estar em qualquer linguagem,
por exemplo, Ingles, Portugues, uma linguagem de programacao, um sistema matematico
ou uma linguagem de inteligencia articial. As sentencas elementares
1
sao atomicas
no sentido de que nao podem mais ser quebradas em componentes mais simples.
As letras p,q,r,s,...representam sentencas nao especicadas. Os smbolos , , , ,
serao usados para representar(denotar) as operacoes pelas quais sentencas compostas sao
construdas a partir das sentencas mais simples. Esses smbolos correspondem, como
sera explicado mais adiante, respectivemente, aos conectivos, nao, e, ou, se, ...,
entao,.. e se ... e somente se ....
As proposicoes compostas podem ser construdas aplicando as operacoes sobre uma ou
mais proposicoes dadas. Um conectivo logico e denido pela sua tabela de verdade. A
tabela de verdade de um conectivo mostra como o valor de verdade de uma proposicao
composta, envolvendo o conectivo e as proposicoes elementares assim compostasou co-
nectadas, dependem dos valores de verdade das proposicoes mais simples. A assertiva
composta e avaliada para cada combinacao possvel dos valores de verdade das assertivas
1
Estamos usando como sinonimos os termos assertiva, sentenca e proposicao, embora num sistema
lingustico mais elaborado, estes tres termos tenham signicados diferentes.
4.1. INTRODUC
AO 73
atomicas no composto. O rotulo de verdade de um conectivo pretende, assim, reetir o
signicado natural do nome do conectivo. Em alguns casos, entretanto, a mesma palavra
tem signicados diferentes em contextos diferents e, portanto, nao e possvel fazer com que
a denicao da tabela de verdade de um conectivo represente todos os signicados possveis
associados a esse nome. A algebra da logica resultante e autoexplicativa no sentido de
que ela fornece um sistema de logica completamente conavel. No campo do projeto de
circuitos de computadores, a algebra da logica tem sido de grande importancia.
Exemplo 69 Se chover entao o rodeio sera cancelado.
Existe uma sugestao de que havera um rodeio se nao chover. Observe que a
sentenca nao da nenhuma orientacao se acontecer de nao chover e nao haja
rodeio.
Exemplo 70 Se o cordao de emergencia for acionado o trem do metro parara.
Neste exemplo, nao existe nenhuma sugestao do que acontecera se o cordao de
emergencia nao for acionado. O motorista pode parar o trem porque chegou
na proxima estacao ou porque apareceu o sinal vermelho. Assim, a assertiva
nao da nenhuma indicacao do que acontecera caso o cordao de emergencia
nao seja acionado. Portanto, nao podera haver nenhuma reclamacao caso o
cordao nao seja acionado, porem, mesmo assim o trem venha a parar.
Com os exemplos acima pretendemos mostrar que as palavras se, ...,entao,... tem
um signicado preciso, ligeiramente diferente do signicado em Portugues, dependendo
do contexto. Entretanto, sera visto abaixo que se ..., entao ... tem um unico signcado
preciso quando denido em logica.
E este signicado que sera usado num computador
para avaliar proposic oes compostas envolvendo conectivos logicos.
Nao (negacao)
Usaremos p para representar a negacao da proposicao p. A negacao e denida pela
tabela de verdade abaixo.
p p
t f
f t
A negacao em nossa algebra pretende modelar a negacao na linguagem comum. Des-
se modo, o smbolo pode ser lido convinientemente como nao, t pode ser lido como
verdadeiro e f como falso. Todas as combinacoes possveis dos valores de verdade
estao listados numa coluna na esquerda sob p. A coluna na direita mostra os valores
74 CAP
ITULO 4. L
OGICA
correspondentes da proposicao p. Existem duas linhas na tabela, pois a proposicao ele-
mentar(atomica) p tem dois valores de verdade possveis.
Por exemplo, se p representa a assertiva (3 < 2) entao p representara a assertiva
3 2. Neste caso, p e verdadeiro enquando p e falso. Este caso e coberto pela primeira
linha da tabela de verdade.
Exemplo 71 Mostrar que p e (p) tem a mesma tabela de verdade.
p p (p)
t f t
f t f
As proposi coes p e (p) tem valores de verdade identicos sobre cada linha da
tabela verdade(compare as colunas 1 e 3). Dizemos que (p) e logicamente
equivalente a p.
A proposicao (p) normalmente e escrita p, pois nao existe possibilidade de con-
fundir seu signicado.
A negacao pode ser vista como uma funcao que transforma proposicoes em proposicoes.
4.1.0.1 e(conjuncao)
Usaremos pq para representar a conjuncao (isto e, e) das proposicoes p e q. A conjuncao
e denida pela tabela de verdade abaixo.
p q p q
t t t
t f f
f t f
f f f
A conjuncao em nossa algebra pretende modelar o conectivo e da linguagem comum.
Assim, o pode ser lido convenientemente por e.
Existem quatro combinacoes de valores de verdade possveis. Por isso a tabela de
verdade tem quatro linhas. O operador mapeia(ou transforma) cada par de assertivas
numa assertiva, e portanto, ele e um operador binario sobre assertivas.
Observe que alterando as ordens de p e q a tabela de valores de verdade nao se altera.
Isto signica que as proposicoes p q e q p sao logicamente equivalentes.
Na linguagem comum pode existir diferencas nos siginicados dos diferentes usos de
e .
Compare
ele cou com febre e tomou um copo de agua
4.1. INTRODUC
AO 75
com
ele tomou um copo de agua e cou febre
A mudaca na ordem parece alterar o signicado da assertiva porque associamos o
conceito de tempo com cada evento na ordem em que ele foi mencionado. Pelo menos
suspeitamos que o evento que foi mencionado primeiro inuenciou o segundo. Portanto,
esse uso particular de e nao pode ser bem modelado pelo nosso conectivo e .
Exemplo 72 Mostrar que p p e logicamente equivalente(de hora em diante, diremos,
simplesmente, equivalente) a p.
p p p p
t t t
f f f
linha 1: quando p e t, p p e t t, que e t da tabela de verdade para e. O
valor t e colocado sob o em p p
linha 2: quando p e f, p p e f f, que e f.
A tabela de verdade para p p e a mesma que a tabela de verdade para p, e
portanto p p e equivalente a p.
Exemplo 73 Mostrar que p p e logicamente falso. Por isto queremos
signicar que os valores de verdade de p p sao todos f.
p (p) p p p p
t f f f
f f t f
Tiramos o parentese de p porque esta claro que se refere `a assertiva ime-
diatamente seguinte. Na tabela de verdade, avaliamos a assertiva na ordem
da esquerda para a direita. Primeiro p, entao p p. Para cada valor de p,
p p e f. Portanto, concluimos que p e logicamente falsa.
A propsicao composta que tem o valor f, para todos os valores possveis de suas pro-
posicoes elementares e denominada uma contradicao.
Os proximos operadores modelam diferentes usos da palava ou. No contexto um
ou outro ou ambos dizemos que esta sendo usado o ou inclusivo. No contexto ou um ou
o outro, mas nao ambos, dizemos que esta sendo usado o ou exclusivo.
76 CAP
ITULO 4. L
OGICA
ou(disjuncao)
Usaremos o smbolo para representar o ou inclusivo construdo das proposicoes p e
q. O operador de ou inclusivo e denido pela tabela abaixo.
p q p q
t t t
t t t
f t t
f f f
Em nossa algebra, com o ou inclusive pretendemos modelar o conectivo ou, na
linguagem comum. O smbolo pode ser lido por conveniencia por ou. O conectivo
ou denido acima modela o uso comum da palavra ou ilustrado no seguinte exemplo.
Se o arquivo de controle ou o arquivo de dados nao for encontrado entao envie
a mensagem arguivo(s) nao encontrado e aborte(terminar sem resolver o
problema) a sessao
Gostaramos que a acao(de abortar) fosse executada se ou um arquivo ou ambos nao
fossem encontrados.
O operador mapeia pares de proposicoes numa proposicao.
Exemplo 74 Mostrar que p p e logicamente verdadeira. Com isto que-
remos signicar que o valor verdade da proposicao p p e t, em toda linha
da tabela de verdade. (Mais adiante isto sera referido como a lei do terceiro
excludo.)
p (p) p (p p)
t t f t
f f t t
Avaliar p, em seguida p, entao p p. Para cada valor de p, p p e t. Por
isso concluimos que p p e logicamente verdadeira.
Uma proposicao composta que tem o valor t, para todos os valores possveis das pro-
posicoes elementares e chamada uma tautologia.
Exemplo 75 Leis de De Morgan. Mostre que:
(a) (p q) e logicamente equivalente a p q.
(b) (p q) e logicamente a p q.
4.1. INTRODUC
AO 77
(a)
(esquerda) (direita)
p q p q (p q) p q (p) (q)
t t t f f f f
t f f t f t t
f t f t t f t
f f f t t t t
(p q) e logicamennte equivalente a p q, pois eles tem a mesma tabela
de verdade, fttt.
(b)
(esquerda) (direita)
p q p q (p q) p q (p) (q)
t t t f f f f
t f t f f t f
f t t f t f f
f f f t t t t
(p q) e logicamente a p q porque ambas possuem a mesma tabela de
verdade, ffft.
ou(exclusivo)
Usaremos para representar o conectivo ou exclusivo. Ele esta denido pela tabela
abaixo.
p q pq
t t f
t f t
f t t
f f f
O conectivo ou exclusivo pretende modelar o uso da palavra ou como aparece na
seguinte sentenca.
Quer voce venha ou nao, tome uma decisao
O exemplo em matematica que segue pretende enfatiza o uso do ou excusivo.
Se x < 0 ou y < 0, mas nao ambos, entao xy < 0.
se p entao q(condicional)
Usaremos p q para representar o condicional se p entao q ou p somente se q, onde
p e q sao proposicoes. O operador condicional e denido pela tabela de verdade abaixo.
78 CAP
ITULO 4. L
OGICA
p q
t t t
t f f
f t t
f f t
Em nossa algebra, o operador condicional pretende modelar o condicional na linguagem
comum. Entretanto, alguns leitores podem contestar a linha 3. Considere o seguinte
argumento.
Prove se (1 = 0) entao (1 = 1).
Prova:
Nos foi dado 0 = 1.
Portanto 1 = 0,
e usando a adicao 1 = 1.
A proposicao (0=1) e f e a proposicao (1=1) e t. A prova acima mostra que se f
entao t. O argumento concorda com a linha 3 da tabela de verdade para o condicional.
Como condicional e muito usado em argumentos, veremos algumas de suas formas
associadas.
condicional reversa contrapositiva inversa
p q p q q p q p p q
t t t t t t
t f f t f t
f t t f t f
f f t t t t
Observe que a reversa nao e logicamente equivalente `a condicional.
A contrapositiva e logicamente equivalente `a condicional.
Se uma condicional for verdadeira entao nao podemos dizer nada sobre a sua reversa
em geral. A reversa pode ser verdadeira ou falsa dependendo da proposicao particular.
Exemplo 76 (para ilustrar as formas associadas com o condicional):
Seja p a proposicao Eu moro em Braslia.
Seja q a proposicao Eu moro no Brasil.
A condicional p q diz, Se eu moro em Braslia entao eu moro no Brasil.
concordamos que isto e verdadeiro(a capital do Brasil e Braslia).
A reversa q p diz que, Se eu moro no Brasil entao eu moro em Braslia
e isto obviamente nao e verdadeiro.
Entretanto, a contrapositiva, q p diz Se eu nao moro no Brasil entao
nao moro em Braslia, esta correto e e logicamente equivalente `a condicional
acima
4.1. INTRODUC
AO 79
Outra equivalencia logica do condicional p q e a proposicao p q. Esta equi-
valencia e muito util, embora ela nao seja intuitivamente clara. A tabela de verdade
abaixo estabelece isso.
p q p q p q
t t t t
t f f f
f t t t
f f t t
p se e somente se(bicondicional)
Os smbolos p q, abaixo sao p se e somente se q.
O bicondicional e logicamente equivalente a (p q) (q p). Isto e, o bicondicional
e logicamente equivalente ao condicional e sua reversa. Segue a tabela de verdade para o
bicondicional.
p q p q
t t t
t f f
f t f
f f t
Maneiras alternativas de estabelecer o condicional
Talvez porque gostemos muito de argumentar hajam muitas frases que veiculam o signi-
cado do condicional. O condicional p q pode ser dado como:
se p entao q, p somente se q, q se p, todos os p sao sao q, p e suciente para q ou q e
necessario para p.
O bicondicional p q pode ser lido como p se e somente se q ou p e necessario e
suciente para q.
Omissao de parenteses(precedencias dos conectivos)
Na algebra comum, classicamos os smbolos
+, , ,
para evitar o uso excessivo de parenteses. Portanto, 3+4 5 signica (3) +(4 5),
isto e, 17 e nao (3 + 4) 5, isto e, 5.
Faremos o mesmo aqui informalmente. A classicacao e
80 CAP
ITULO 4. L
OGICA
,
,
do mais baixo para o mais alto. A regra e que o conectivo mais baixo na classicacao
se estende ao mais baixo escopo. Para preencher os parenteses ausentes, inicie com o
conectivo mais baixo na classicacao e insira os parenteses mais proximos permissveis,
sem quebrar os parenteses existentes, e entao mova-se ao proximo conectivo de mais baixa
clssicacao, e assim por diante.
Exemplos:
1. p q signica ((p) q).
2. p q r s signica ((p) q) (r s)).
3. p q r e ambguo.
E preciso parenteses para mostrar o que ele signica.
4. p q r nao e permitido (ate logo mais adiante).
5. p q r nao e permitido.
Observacao 1 Em cursos de computacao e identicado com e e identicado
com +.
E comum ter precedencia sobre +, em analogia com a aritmetica comum.
Portanto, os estudantes de computacao desconam que o item 3 nao e ambguo.
4.2 Raciocinando com hipoteses logicas
Um calculo de proposicoes e um processo com o qual raciocinamos ou computamos usan-
do smbolos. Para termos um calculo precisamos de axiomas ou fatos assumidos e
regras, para manipular esses axiomas, a m de produzir novos fatos. Um exemplo de
um axioma e p (p) que e logicamente equivalente a t, para toda proposicao. Um
exemplo de uma regra e a regra da substituicao, que nos permite substituir qualquer
proposicao por outra logicamente equivalente, para obter uma nova proposicao(ou teo-
rema). Usando a regra da substituicao, substitua p por p, no axioma acima. Entao,
p p e uma nova proposicao logicamente verdadeira.
Este metodo de raciocinar e mais dinamico que o metodo da tabela de verdade, intro-
duzido acima, mas ele e consistente com a abordagem da tabela de verdade, no sentido de
que cada axioma que assumirmos poderia ser estabelecido pela tabela de verdade.
Denicao 21 (Tautologia) Uma proposicao composta que tem valor t, para todos os
valores das proposic oes elementares, e chamada uma tautologia.
4.2. RACIOCINANDO COM HIP
OTESES L
OGICAS 81
Denicao 22 (Contradicao) Uma proposicao composta que tem o valor f, para todos os
valores das proposic oes constituintes, e chamada contradicao.
Denicao 23 (Contigencia) Uma proposicao composta que tem valor t, para alguns va-
lores das proposic oes constituintes e f, para outros, e chamada contigente.
Denicao 24 (Logicamente equivalente) Dizemos que as proposicoes p e q sao logica-
mente equivalentes se e somente se p q e uma tautologia.
As denicoes acima emergem da abordagem da tabela de verdade adotada anterior-
mente. Entretanto, e razoavel aceitarmos proposicoes tais como
uma proposicao e logicamente equivalente a si proprio (1)
e
ou uma proposicao ou sua negacao e verdadeira (2)
como sendo universalmente verdadeira, sem sentir necessidade de explorar todas as
possibilidades das tabelas de verdade.
Adotando essa abordagem, logicamente equivalente a se torna uma relacao funda-
mental denida sobre o conjunto de todas as proposicoes que podem ser construdas das
proposicoes elementares p,q,r,..., usando os conectivos logicos , , , , , introduzidos
anteriormente.
Uma tautologia e agora ua proposic ao que e logicamente equivalente a t.
Uma contradicao e uma proposicao que e logicamente equivalente a f.
As proposicoes (1) e (2) acima se tornam
p e logicamente equivalente a q (1
)
p negp e logicamente equivalente a t (2
)
Como e muito tedioso repetir a frase e logicamente equivalente a, em todo nosso
raciocnio, substituimo-la pelo smbolo . Alguns autores usam o smbolo . O
smbolo , aqui, representa uma relac ao de equivalencia entre proposic oes. (Obser-
ve que na sentenca a b mod m, onde a, b, m sao inteiros, o smbolo representa
congruencia mod m. O smbolo nao esta denido isoladamente, mas somente relati-
vamente a um dado conjunto de objetos, por exemplo, proposic oes ou inteiros.)
As proposicoes (1) e (2), acima, podem agora ser escritas:
Lei da identidade p p (1
)
Lei do terceiro excludo p p t (2
ITULO 4. L
OGICA
Leis da algebra da logica ou calculo proposional
As leis dadas abaixo sao, por hipotese, corretas, podendo ser usadas no raciocnio. Es-
sas leis sao consistentes com as denic oes das tabelas de verdade dos conectivos, dadas
anteriormente.
Quando aplicamos essas leis, podemos substituir proposicoes arbitrarias pelas letras
p, q, r. Um logico diria que cada lei e um esquema cobrindo innitas instancias.
Leis da negacao
(a) p p (b) t f (c) f t.
Leis comutativas
(a) p q q p (b) p q q p
Leis associativas
(a) p (q r) (p q) r (b) (p q) r p (q r)
Leis distributivas
(a) p (q r) (p q) (q r) (b) p (q r) (p q) (p r)
Leis de De Morgan
(a) (p q) p q (p q) p q
Lei do terceiro excludo p p t
Lei da contradicao p p f
Lei da implicacao p q (p q)
Lei da equivalencia (p q) (p q) (q p)
Leis da simplicacao do ou
(a) p p p (b) p t t (c) p f p (d) p (p q) p
Leis da simplicacao do e
(a) p p p (b) p t p (c) p f f (d) p (p q) p
Lei da identidade p p.
Algumas das leis acima podem ser provadas a partir de outras no conjunto.
E possvel
achar um conjunto mnimo de leis logicas a partir do qual todas as outras possam ser
derivadas. No entanto, para o nosso proposito isto nao e relevante. As leis acima foram
selecionadas como uma colec ao razoavel sobre a qual basearemos nossos argumentos.
Poderamos apresentar mais leis, entretanto nao queremos alongar tanto esse conjunto ao
ponto de se tornar muito tedioso para futuras referencias.
Regras para a substituicao e a transitividade
Essas regras mostram como podemos inferir novas proposic oes.
regra da substituicao. Esta regra nos permite substituir qualquer proposic ao logi-
camente equivalente para obter um novo teorema.
4.2. RACIOCINANDO COM HIP
OTESES L
OGICAS 83
Exemplo (a): Prove que (x y) (y x) (a condicional e logicamente
equivalente `a contrapositiva).
Prova: (x y) x y (implicacao)
y x (axioma comutativo)
y x (negacao)
(y x) (implicacao)
Exemplo (b): Mostre que
((p q) p) q
e uma tautologia.
Prova: ((p q) p) q
((p ) p) q (implicacao)
((p q) (p) q) (De Morgan)
(p q) (p q) (associativo)
(p q) (p q) (implicacao)
t (terceiro excludo)
O que prova que ((p q) p) q e uma tautologia.
Exemplo (c): Mostrar que p q p e uma tautologia.
Prova: (p q) p) (p q) p (implicacao)
(p q) p (De Morgan )
p (p q) (comutativo )
(p p) q (associativo)
t q (terceiro excludo)
t (simplicacao do ou)
Exemplo (d): Mostrar que p (p q) e uma tautologia.
Prova: (p (p q)) p (p q) (implicacao)
(p p) q (associativa)
t q (terceiro excludo)
t (simplicacao do ou)
Portanto, p (p q) e uma tautologia.
Os exemplos 3 e 4 sugerem outra relacao entre proposic oes compostas. Onde p q
for uma tautologia, podemos dizer p implica logicamente q. Alguns autores usam o
smbolo para signicar implica logicamente.
A relac ao implica logicamente e transitiva mas nao e simetrica.
Regra da transitividade Se p q e q r entao p r.
84 CAP
ITULO 4. L
OGICA
Exemplo: Prove que p q p q.
Prova: p q p (exemplo 3)
p p q (exemplo 4)
p q p q (regra da trasitividade)
A equivalencia logica
proposic ao(1) proposicao(2)
pode ser vista como
(proposic ao(1)proposic ao(2))(proposicao(2)proposicao(1))
4.3 Predicados & Quanticadores
O calculo proposicional da logica desenvolvida ate aqui, nesta parte, e uma teoria de
logica autocontida, mas com suas limitac oes.
Observamos no incio deste assunto que uma proposicao p deve ser, sem ambiguidade,
verdadeira ou falsa. Mas, com frequencia precisamos considerar assertivas cujos valores
de verdade variam. Por exemplo, qando explicamos o condicional escolhemos p como
sendo Eu moro em Braslia.
Podemos tratar esta situac ao introduzindo funcoes cujos contradominos sao valores
de verdade. Uma func ao com essa caracterstica e chamada um predicado. No exemplo
acima, a variavel Eu foi escolhida dentre um conjunto de pessoas. Cada pessoa e
mapeiada em t se ela mora em Braslia ou f se nao for o caso.
Calculo de predicados
Denicao 25 (Predicado) Um predicado e uma expressao envolvendo uma ou mais va-
riaveis denidas sobre algum domnio. A substituicao da variavel(veis) por um valor(ou
valores) particular do domnio produz uma proposicao que e verdadeira ou falsa. Portanto,
um predicado dene uma funcao do domnio no conjunto booleano t, f.
Exemplo 77 P(n) (n e primo) e um predicado sobre os n umeros naturais. Observamos
que P(1) e falso, P(2) e verdadeiro, P(12) e falso, P(37) e verdadeiro.
O predicado e primo pode ser considerado como uma funcao:
P: N B
P(n) =
_
t quando n e primo
f quando n nao e primo
4.3. PREDICADOS & QUANTIFICADORES 85
Exemplo 78 Precondicoes e poscondicoes sao predicados. Por exemplo, a poscondicao
para a divisao inteira, vista anteriormente, e Q(a, b, q, r) (a = bq + r) (0 r < b).
Este predicado dene a funcao
poscondicao: N N N N B
poscondicao(a,b,q,r)=
_
t quando (a = bq +r) (0 r < b)
f caso contrario
Quanticadores
Alem da substituic ao da vari avel por um valor particular, existe outra maneira importante
de converter um predicado em uma proposicao. Para isso podemos usar o conceito de
quanticador, usado para especicar quando o predicado e verdadeiro para todo ou parte
do domnio.
Para todo n, P(n) signica que o predicado P tem valor t em todo o domnio. O
smbolo que usaremos para representar para todo e .
Para algum ou existe n, P(n) signica que o predicado tem valor t para pelo
menos um elemento do domnio. O smbolo que usaremos para representar para algum
e .
Os exemplos que seguem ilustram o uso de quanticadores, com o valor de verdade
resultante.
1. A frase 2k e par, a primeira vista, parece um predicado, mas ela realmente e uma
proposicao(t), pois sabemos que 2k e par para todos os valores do inteiro k. Em
smbolos, escrevemos
k N (2k e par),
uma proposic ao com valor de verdade t.
2. Para todos os inteiros n, 2n - 1 e mpar. Em smbolos, escrevemos
k Z (2n - 1 e mpar)
e uma proposic ao com valor de verdade t.
3. Para todos os primos p, p e mpar. Em smbolos, escrevemos
p o conjunto dos n umeros primos, (p e mpar)
86 CAP
ITULO 4. L
OGICA
Esta proposic ao tem valor f. (O n umero 2 tambem e primo.)
O quanticador pode ser restrito a um subconjunto do domnio do predicado.
4. Para todo n umero real nao nulo, seu quadrado e positivo.
Em smbolos
x R, x ,= 0(x
2
> 0)
Esta proposic ao tem valor t.
5. Se um inteiro e par entao seu quadrado e par.
Esta e, realmente, uma proposicao geral sobre todos os inteiros. Seria
mais satisfatorio incluir o quanticador explicitamente. Assim:
Para todo os inteiros n, se n e par ent ao n
2
e par.
Nesta forma esta claro que um valor falso do predicado, para um valor de
n, seria suciente para mostra a falsidade da proposicao. Entretanto, tal
contra exemplo nao pode ser encontrado como mostra a seguinte prova.
Prova: Para todos os inteiros n,
n e par implica que(n=2m) para algum inteiro m
que implica n
2
= 4m
2
, portanto n
2
e par.
6. Para todo inteiro n, se n
2
for mpar, ent ao n e mpar.
Esta proposic ao e a contrapositiva do exemplo 5.
A estrutura das proposic oes em 5. e 6. acima pode ser mais transparente se as
colocarmos na forma simb olica.
Dena P(n) como sendo o predicado n e mpar
Q(n) como sendo n
2
e par
Ent ao a proposic ao em 5. acima e
n Z(P(n) Q(n));
e a contrapositiva em 6. e
n Z(Q(n) P(n));
4.3. PREDICADOS & QUANTIFICADORES 87
Negacao de predicados quanticados
Como um predicado quanticado e uma proposic ao com um valor de verdade denitivo,
deve ser possvel nega-lo para obter o valor de verdade oposto. A estrutura simb olica da
negacao sera investigada usando um exemplo.
Para algum n umero x, x
2
e negativo. Em smbolos,
x R(x
2
< 0), que e f.
A negac ao da proposicao e:
Para todo n umero real x, x
2
e nao negativo. Em smbolos, x R(x
2
0), que e t.
Os resultados gerais sao:
(xP(x)) x(P(x))
(xQ(x)) x(Q(x))
Quanticadores para predicados com mais de uma variavel
Os resultados para a negacao podem ser estendidos para quanticadores com predicados
com mais que uma vari avel. Por exemplo:
x Ry R(x +y = 0)
que signica para todo x real existe um n umero real y tal que x + y = 0. Isto e
verdade, sendo y o negativo de x. A negac ao e:
(xy(x +y = 0)) x(y(x +y = 0) xy(x +y ,= 0)
A ordem dos quanticadores m ultiplos para predicados com mais que uma vari avel
pode alterar o signicado e o valor de verdade da proposicao. Por exemplo:
Todo n umero natural tem um sucessor. Em smbolos
n Nm N(m = n + 1)
que e uma proposicao verdadeira.
Se alterarmos a ordem dos quanticadores obteremos
m Nn N(m = n + 1)
Na linguagem comum esta expressao diz algum n umero natural tem todo n umero
natural como seu sucessor que nao e equivalente a proposicao com os quanticadores na
ordem original.
88 CAP
ITULO 4. L
OGICA
4.4 Exerccios
1. O operador nand, denotado por [, e denido por
p[q (p q)
(a) De a tabela de verdade para p[q.
(b) Mostre que p[p e logicamente equivalente a p.
(c) Achar uma formula para p q usando somente o operador nand.
(d) Achar uma formula para p q usando somente o operador nand.
2. Mostrar que p q e logicamente equivalente a p q, usando tabelas de verdade.
3. Mostre que (x y) x e uma tautologia usando tabelas de verdade.
4. As quatro proposic oes seguintes possuem o mesmo signicado quando usadas em
matematica:
se p entao q p e suciente para q
q e necessario para p p somente se q.
Reescreva cada uma dessas proposic oes seguintes de tres maneiras diferentes usando
os padraos acima:
(a) Se 9 divide n ent ao 3 divide n.
(b) x = 0 e suciente para xy = 0.
5. Achar a reversa e a contrapositiva das seguintes proposicoes.
(a) Se n e mpar ent ao n
2
e mpar.
(a) Se n e primo e maior que 2 ent ao n e mpar.
(c) Se ab = 0 ent ao a = 0 ou b = 0.
6. Mostre que (p q) (p q) q e uma tautologia.
7. Use as leis do calculo proposicional e p (p q) p para provar que p (p q) p.
8. Use as leis do calculo proposicional para provar que as seguintes proposic oes sao
tautologias.
(a) (p q) (p q).
4.4. EXERC
ICIOS 89
(b) (p (p r)) ((p q) (p r)).
(c) (p (p q)) (p q)
(d) ((p q) p) q.
(e) ((p q) p) q.
9. Prove, usando a tabela de proposic oes logicamente equivalentes, que as seguintes
proposicoes sao tautologias.
(a) p ((q r) p).
(b) (p (q r)) (q (p r)).
(c) (p (p q)) p.
(d) ((p q) p) (p q).
(e) ((p q) q) q.
10. P(n) e o predicado se 4 divide n entao 2 divide n.
Qual e o valor de verdade de
(a) P(12)? (b) P(10)? (c) nP(n)? (d) nP(n)?
11. Qual e o valor de verdade da proposic ao?
xy(y x = x y)
De a negacao dessa proposicao.
12. Escrever, usando smbolos matematicos e logicos a seguinte proposicao:
Para todo n umero real positivo x, existe um n umero natural n tal que x
e igual a 2
n
ou x esta entre 2
n
e a proxima maior potencia de 2.
Escreva a negacao da proposic ao em smbolos. Qual das proposicoes e verdadeira.
13. Neste quesito o conjunto universal e Z, isto e, n e um inteiro.
P(n) e o predicado (0 < n
2
4).
R(n) e o predicado (0 < n
3
8).
S(n) e o predicado (0 < n 2).
Dar o conjunto de valores de n que gera proposicoes verdadeiras para cada
uma das P, R, S.
Quais dos predicados sao equivalentes?
A proposicao n(R(n) P(n)) e verdadeira?
90 CAP
ITULO 4. L
OGICA
14. Use o calculo de proposic oes para simplicar cada uma das proposic oes abaixo a uma
das proposic oes f, t, p, q, p q, p q.
(a) p (q p) q (b) p q p (c) p (p q)
15. A forma normal conjuntiva tem a forma
p
0
... p
n
, onde cada p
i
tem a forma e
0
... e
m
.
Cada e
j
e t, f, ou uma proposicao elementar x ou sua negacao x.
Converter as seguintes proposic oes a sua forma normal conjuntiva:
(a) (p q) (p r) (p q) (p q)
Captulo 5
Provas
5.1 Introducao
Nesta captulo consideraremos construcoes de provas matematicas. Apos ver este assunto
o aluno deve ser capaz de completar provas em que lhe sejam dadas certas assistencia
para a estrutura da prova. Num nvel mais alto e importante aprender como selecionar
estruturas para a prova. As estruturas da prova que o aluno deve ser capaz de enteder
e usar sao: provas por casos, prova direta seguindo a analise, prova pela contrapositiva,
prova por construcao e por inducao matematica. Esta e uma forma especial de prova
usada para provar que um programa esta correto.
A prova tem sido uma parte importante da matematica desde o tempo dos gregos
antigos. Raciocinar, sem d uvida, fez parte da cultura do antigo Egito e da Babilonia, mas
nao existe evidencia de prova como signicando uma demonstracao de um argumento
de um modo p ublico, sucientemente rigorosa para suportar qualquer crtica. Num livro
chamado Os Elementos, Euclides(aproximadamente, 300 a.c.) apresentou o conceito que e,
ainda, a base de provas em matematica. Ele demonstrou que se assumirmos um pequeno
n umero de axiomas, aceitar denic oes e regras de argumentos, entao e possvel provar
uma grande quantidade de proposic oes, como consequencia das hipoteses. Entretanto, a
prova e uma das caractersca de muitas atividades, haja visto o trabalho do advogado.
Mais recentemente, tem sido adaptados alguns metodos matematicos de provas, para
a tarefa de provar corretudes de programas. Testar pacientemente um programa para
muitos conjuntos de entradas de dados, nao pode, normalmente, garantir que o programa
esteja correto para todas as entradas possveis, pois um programa util e projetado para
aceitar uma quantidade innita de entradas.
E muito mais satisfatorio provar que o
programa esteja correto, porem provalmente seja mais difcil que construir o proprio
programa. Somente poderemos provar que um programa esta correto relativamente
a sua poscondic ao. A atividade de provar que um programa esta correto e chamada
vericacao de programas.
91
92 CAP
ITULO 5. PROVAS
O esforco de provar corretudes de programas tem tido efeitos sobre o estilo de escrever
programas. Alguns autores defendem que o programa seja desenvolvido lado a lado com
sua prova.
Padroes de provas
Agora, apresentaremos uma abordagem sistematica de provas em matematica. Para o
estudante, a prova de proposic oes, geralmente, e difcil. Uma prova requer muito conhe-
cimento dos teoremas, denic oes e hipoteses na area da proposic ao, a habilidade para
selecionar uma estrategia de prova e segui-la logicamente, superando muitas diculdades
ao longo do processo da prova.
E grande a satisfac ao ao completar uma prova e convencer
a audiencia de que a proposic ao esta, sem d uvida, correta.
A obordagem que seguiremos, nesta parte, e motivada no fato de que a arte de construir
uma prova e analoga a de construir um bom programa, em pelo menos dois pontos de
vistas. Ambos devem estar corretos e serem entendidos pelos outros.
Examinemos o exemplo seguinte para ilustrar um metodo bastante usado de provas. As
proposic oes foram escolhidas sobre os n umeros naturais, pois e uma parte da matematica
bem conhecida. O nosso objetivo e concentrar a atenc ao no metodo.
Deve estar claro de antem ao que os metodos de que estamos falando nao sao receitas
ou procedimentos que inevitavelmente gerara uma prova correta, para cada proposic ao.
Os metodos sao abordagens que provalvemente levam ao sucesso, mas requerem uma
variedade de pequenas variacoes para se adequar as proposic oes particulares. Para superar
essas diculdades precisamos de muito exerccio para obter experiencia.
Sabemos que uma boa ideia pode nao ser bem sucedida e por isso devemos estar
preparados para tentar um outro metodo.
Quando escrevemos uma prova para uma proposic ao devemos ter em mente que esta-
mos tentando convencer alguma audiencia de que a proposicao e verdadeira. Portanto,
nossa prova deve estar correta e clara. O ideal seria esbocar uma prova e ent ao mostra-la
a alguem, e nalmente elabora-la para atingir a clareza. Uma prova pode ser difcil de ler
devido a mal escolha de notac ao ou a diculdade da estrutura. Esta parte da matematica
provavelmente se benecia mais do que qualquer outra da iterac ao entre as pessoas.
As fases pelas quais passamos na construcao de uma prova sao:
1. A montagem dos fatos que provalmente serao uteis na prova;
2. A escolha de uma estrategia de prova ou metodo; e
3. a A preparacao da prova para uma audiencia
Nesta sec ao nos concentraremos na segunda fase. Uma das caractersticas das provas,
como sao apresentadas nos textos, e a nao justicativa da razao porque o autor optou
5.1. INTRODUC
AO 93
por uma abordagem particular. Quando lemos uma prova quase sempre nos perguntamos
podemos ver que e verdade, mas como o autor descobriu essa maneira?
Para ajudar na abordagem desse problema, colocaremos coment arios em colchetes
para sugerir o que os autores estariam, provavelmente, pensando no momento da prova.
Exemplos de provas em matematica
As provas que segue ilustram:
1. provas por casos;
2. provas por contraposivas;
3. provas diretas; e
4. provas por contradi cao.
Proposicao 1 Para todo inteiro n, n
3
+ 2n e divisvel por 3.
[Primeiras ideias: tente obter 3 como fator. Nao podendo conseguindo, fatorize a
expressao de qualquer maneira: n
3
+ 2n = n(n
2
+ 2). A proposicao seria verdadeira se
n fosse um m ultiplo de 3. Mas, que tal outras possibilidades? Tentemos uma prova por
casos.]
Prova: n
3
+ 2n = n(n
2
+ 2)
Caso 1: n = 3k para algum k.
n
3
+ 2n = 3k((3k)
2
+ 2) que e divisvel por 3.
Caso 2: n = 3k + 1, para algum k.
n(n
2
+ 2) = (3k + 1)((3k + 1)
2
+ 2)
Analisemos o segundo fator, pois o primeiro nao e divisvel por 3.
(3k + 1)
2
+ 2 = 9k
2
+ 6k + 1 + 2
= 3(3k
2
+ 2k + 1) (divisvel por 3).
Caso 3: n = 3k + 2, para algum k.
Novamente olhando para o segundo fator, temos
94 CAP
ITULO 5. PROVAS
n
2
+ 2 = (3k + 2)
2
+ 2
= 9k
2
+ 12k + 4 + 2
= 9k
2
+ 12k + 6
= 3(3k
2
+ 4k + 2) (e divisvel por 3.)
Em cada caso, n
2
+ 2n e divisvel por 3. Os tres casos cobrem todas as
possibilidades, pois cada inteiro cai em um desses tres casos.
Portanto, a proposic ao e verdadeira para todo inteiro n.
Proposicao 2 Se n
2
for par entao n tambem e par
[Primeira ideias: Como n
2
e par podemos dizer que n
2
= 2k, para algum k. Tentemos
a contrapositiva.
Prova:
Vamos provar se n for mpar, ent ao n
2
e mpar.
Como n e mpar temos n = 2k + 1, para algum k.
Portanto, n
2
= (2k + 1)(2k + 1) = 4k
2
+ 4k + 1 que e mpar.
A proposic ao sob aspas e verdadeira. Como ela e a contrapositiva da propo-
sic ao que pretendemos provar. Podemos armar que, se n
2
for par ent ao n e
par.
Observe que este resultado e muito geral. Seria correto colocar o quanticador para
todo inteiro n na proposic ao.
Proposicao 3 Se p > 3 e p e primo, entao p
2
1 e divisvel por 3.
[Temos duas informacoes. Talvez possamos comecar com essas informacoes e
concluir o resultado, p
2
1 e divisvel por 3, fazendo uma prova direta. A
estrategia sera bem sucedida, desde que tenhamos em vista a conclusao.]
[Analise: Tentaremos argumentar avancando a partir das informacoes que
possuimos, e recuando a partir do que pretendemos mostrar, na esperanca de
que os dois argumentos se completarao, produzindo o resultado.
dado: a ser provado:
proposicao: p > 3 e p e primo p
2
1 e divisvel por 3
precondicoes: p ,= 2, p ,= 3 fatorar
p
2
1 = (p 1)(p + 1)
Agora observe que (p 1), p e (p + 1) sao inteiros consecutivos.]
5.1. INTRODUC
AO 95
Prova:
Um dos tres n umeros (p 1), p, (p + 1) e divisvel por 3, pois eles sao conse-
cutivos.
Mas esse n umero nao pode ser p porque p e primo maior que 3. Logo, (p
1)(p + 1) e divisvel por 3.
Portanto, p
2
1 e divisvl por 3.
Proposicao 4 Existem mais n umeros primos que n umeros naturais. Por isso podemos
dizer que a quantidade de primos e innita.
A prova classica e devida a Euclides(aproximadamente, 300 a.c.). O metodo e chamado
prova por contradicao.
Prova:
Suponha que a proposicao e falsa e portanto so existe um n umero nito, k, de
primos.
Sejam os primos p
1
, p
2
, ..., p
k
, onde k e um inteiro positivo.
Considere o n umero n = p
1
p
2
... p
k
+ 1. n e maior que qualquer primo
conhecido, pois ele nao e primo. Logo, esse n umero deve ser composto.
Portanto, podemos expressar n como um produto de primos.
Mas, nenhum dos primos conhecidos divide n. Cada um deles deixa resto 1.
Logo, deve existir algum primo alem dos primos conhecidos.
Contradicao. A hipotese feita no incio da prova deve estar errada, e assim
o n umero de primos nao e nito.
Inducao matematica
A induc ao matematica e um estilo de prova aplicavel a predicados, sobre os n umeros
naturais. Algoritmos com uma estrutura de laco, em geral, estao associados a predicados
sobre um contador de laco, que e um n umero natural. Bastava esta razao para que a
inducao matematica fosse um metodo de prova muito importante em computac ao.
O princpio da inducao matematica
Em palavras.
96 CAP
ITULO 5. PROVAS
Suponhamos um predicado denido sobre os n umeros naturais. Suponha que
o predicado e verdadeiro para algum valor(b asico) da vari avel. E suponha que
se o predicado for verdadeiro para qualquer valor da vari avel, ele tambem sera
verdadeiro para esse valor mais 1. Entao o predicado e verdadeiro para todos
os valores da vari avel, a partir do valor basico.
Em smbolos.
Seja P(n) um predicado denido sobre o inteiro n.
Suponha que P(a) e verdadeiro para algum inteiro a, e suponha que (P(k)
P(k +1)) e verdadeiro para todo inteiro k a. Entao P(n) e verdadeiro para
todo n a.
ITULO 5. PROVAS
Proposicao 6 Uma maquina automatica de vendas foi programada para entregar, a
pedido, selos. A maquina mantem estoques de selos de 3-centavos e 5-centavos. Desde
que o estoque nao se esgote, a maquina pode entregar exatamente qualquer valor maior
ou igual a 8-centavos.
Dena o predicado P(n) como sendo postagem de n-centavos pode ser feito usando
selos de tres e cinco centavos
Prova:
Basica: Mostrar que P(8) e verdadeiro.
P(8) e verdadeiro porque 8-centavos pode ser obtido usando selos de 3-centavos
e 8-centavos.
Indutiva: Mostrar que (P(k) P(k + 1)) e verdadeiro para todo inteiro
k 8.
Assuma que P(k) e verdadeiro. Isto e, k-centavos pode ser obtido com selos
de 3-centavos e 5-centavos, para algum k 8.
2
Caso 1: Se existem selos de 5-centavos fazendo parte dos k-centavos, substitua-
o por dois selos de 3-centavos para obter o valor de (k+1)-centavos.
Caso 2: Se nao existe selos de 5-centavos no conjunto compondo k-centavos
ent ao deve existir no mnimo selos de 3-centavos para satisfazer a condic ao
k 8. Substitua tres selos de 3-centavos por dois de 5-centavos perfazendo o
valor (k+1)-centavos.
Portanto, P(k) P(k + 1) e verdadeiro para k, um valor particular de n.
Entretanto, o argumento se verica para todo k 8.
Pelo princpio da induc ao matematica, a postagem de n-centavos de selos pode
ser efetuada com selos de 3-centavos e 5-centavos, para todo valor de n 8.
Esta proposic ao seria muito difcil de provar com uma prova direta. Alem disso, a
prova indutiva sugere um procedimento para programar a maquina de vendas.
Proposicao 7 Para todos os inteiros n 1, 3
n
1 + 2n.
Dena o predicado P(n) como sendo (3
n
1 + 2n).
Prova: Basica:
2
Neste ponto k e um valor constante particular para n.
5.1. INTRODUC
AO 99
Mostrar que P(1) e verdadeiro.
3
1
1 + 2 1, portanto P(1) e verdadeiro.
Indutiva: Mostrar que (P(k) P(k + 1) e verdadeiro para todo inteiro
k 1.
Assuma que P(k) e verdadeiro. Da hipotese temos a esperanca de deduzir que
3
k+1
1 + 2(k + 1).
3
k
1 + 2k (hipotese de que P(k))
3 3
k
3(1 + 2k) (multiplicando por 3)
3
k+1
1 + 2k + 2 + 4k (algebra)
1 + 2k + 2 ( pois k > 0)
Portanto, 3
k+1
1 + 2(k + 1)
Isto e, mostramos que (P(k) P(k + 1) e verdadeiro para k um valor parti-
cular de n.
O argumento se verica para k 1. Pelo princpio da inducao matematica, a
proposicao e verdadeira.
Proposicao 8 Para todo inteiro n > 6, n! > 3
n
.
Dena o predicado p(n) como sendo (n! > 3
n
).
Prova:
Basica: Mostrar que P(7) e verdadeiro.
7! = 7 6 5 4 3 2 1 = 5040 e 3
7
= 2187
Portanto, 7! > 3
7
e P(7) e verdadeira.
Indutivo: Mostrar que P(k) P(k + 1) e verdadeiro para todo inteiro
k 7.
Assuma que P(k) e verdadeiro. Da hipotese esperamos deduzir que (k + 1)! >
3
k+1
.
(k + 1)! = (k + 1)k!
> (k + 1)3
k
(assumindo P(k))
> 3 3
k
(desde que k 7)
Portanto, (k + 1)! > 3
k+1
Mostramos que P(k) P(k + 1) e verdadeiro para k um valor particular de
n. Entretanto, o argumento e geral, vericando para todos os inteiros k 7.
Pelo princpio da inducao matematica n! > 3
n
, para todos os inteiros n > 6.
100 CAP
ITULO 5. PROVAS
Proposicao 9 Para todo inteiro n > 0,
a +ar +ar
2
+... +ar
n1
=
a(r
n
1)
r 1
parar ,= 1
Dena o predicado P(n) como sendo (A soma dos primeiros n termos e
a +ar +ar
2
+... +ar
n1
=
a(r
n
1)
r 1
, r ,= 1.)
A parte da serie que e o predicado usa n de duas maneiras. A formula para o ultimo
termo e uma funcao de n. Alem disso, n conta o n umero de termos na serie. Portanto,
P(n+1) tera uma nova formula para o ultimo termo da serie e assim um termo a mais
nela.
Prova:
A precondicao e r ,= 1.
Basico: Mostrar que P(1) e verdadeiro.
Para n=1 a serie tem somente um termo, a. A formula para a soma da serie
e
a(r
1
1)
r 1
que e tambem a. Portanto P(1) e verdadeiro.
Indutiva: Mostrar que P(k) P(k + 1) e verdadeiro para todo k 1.
Assuma que P(k) e verdadeiro. Isto e, suponha que a formula fornece a soma
correta para uma serie com k termos(k constante.)
Adicione o proximo termo na serie, notadamente ar
k
, em ambos os lados da
equacao para a soma de k termos assumido.
Entao, a soma de k+1 termos e:
a +ar +ar
2
+... +ar
r1
=
a(r
k
1)
r1
+ar
k
=
ar
k
a
r1
+
ar
k
r1
=
ar
k
a+ar
k+1
ar
k
r1
=
a(r
k+1
1)
r1
5.1. INTRODUC
AO 101
Isto prova que P(k+1) segue da hipotese de que P(k) e verdadeiro.
Isto e, P(n) P(n+1) e verdadeiro para o valor particular n = k. Entretanto,
o argumento e sucientemente geral podermos deduzir a verdade para todo
k 1. Pelo princpio da induc ao matematica a proposic ao esta provada.
Proposicao 10 Todo inteiro maior que 1 pode ser escrito como um produto de primos.
3
Um unico primo e visto como o produto de um primo.
Dena P(n) como sendo (cada inteiro de 2 a n pode ser escrito como um produto de
um ou mais primos).
Prova:
Etapa basica. Mostrar que P(2) e verdadeiro.
O inteiro 2 e primo. Portanto, P(2) e verdaeiro.
Etapa Indutiva. Mostrar que P(k) P(k+1) e verdadeiro para todo k 2.
Assuma que p(k) e verdade, (k constante).
Caso 1: Suponha que k + 1 e primo. Isto e, k + 1 e o produto de um primo
e P(k+1) e verdade.
Caso 2: Suponha que k+1 nao e primo. Entao, k+1 e composto e, portanto,
pode ser escrito como um produto mn, onde ambos os fatores pertencem ao
conjunto 2,3,...,k.
A hipotese de que P(k) e verdadeiro signica que ambos m e n sao produtos
de primos.
Portanto, o mesmo e verdadeiro para k+1. Logo, P(k+1) e verdadeiro. Mos-
tramos que P(k) P(k + 1) e verdadeiro para uma constante particular
k. Agora, este argumento e sucientemente geral para podermos armar que
P(k) P(k + 1) e verdadeiro para k 2.
Logo, pelo princpio da inducao matematica, todo inteiro maior que 1 pode ser
escrito como um produto de primos.
Em palavras, mostramos que se a proposicao for verdadeira para algum valor de n ela
tambem e verdadeira para o proximo maior valor de n. Mas, a proposic ao e verdadeira
para n=2. Consequentemente, ela e verdadeira para todos os valores de n a partir de 2.
3
A assertiva da proposicao contem um abuso do termo produto.
102 CAP
ITULO 5. PROVAS
Indu cao e boa ordem
Tornando transparente a logica subjacente do raciocnio matematico, particularmente
da induc ao matematica, podera nos ajudar a expressar o argumento usando regras de
inferencia ou regras de deduc ao.
Uma regra de inferencia e um esquema logico usando smbolos p, q, ... que podem ser
substitudos por proposicoes particulares para obter uma instancia (isto e, uma aplicac ao)
da regra. Vamos considerar um exemplo de uma regra de inferencia.
O esquema
p
p q
q
e lido
se soubermos(ou aceitarmos ou nos forem dados) que a proposic ao(p) e verdadeira
e soubermos que a proposic ao(se p, entao q) e verdadeira, ent ao poderemos concluir que
(q) e verdadeira.
Esta regra de inferencia e chamada modus ponens.
Exemplo 79 O que segue e uma instancia da regra modus ponens.
1. x e par e x e primo.
2. se(x e par e x e primo) ent ao (x=2)
Portanto, x = 2.
O esquema mostra a estrutura logica do argumento.
A linha 1 e a proposicao p do esquema, no caso uma proposicao composta que assu-
mimos ser verdadeira ou dada.
A linha 2 e a proposic ao p q, onde q e o predicado x = 2, e a proposicao p q e
suposta vedadeira.
A conclusao do modus ponens e que q segue, resultando x = 2.
O princpio da inducao matematica: A forma fraca
Expresso como uma regra de inferencia, o princpio da induc ao matematica e o esquema
(proposic ao basica) P(0)
(proposic ao indutiva) para todo k 0, (P(k) P(k + 1))
para todo k 0, P(n)
Este princpio pode ser visto como uma aplicacao repetida do modus ponens.
Portanto (1) P(0) (basico)
(2) P(0) P(1) (indutivo, k=0)
(3) P(1) (linhas 1, 2, modus ponens)
(4) P(1) P(2) (indutivo, k=1)
(5) P(2) (linhas 3,4, modus ponens)
5.1. INTRODUC
AO 103
e assim continua uma innidade de aplicac oes de modus ponens.
Isto e bastante plausvel. Entretanto, alguns matematicos preferem fazer das innitas
aplicacoes uma hipotese separada constituindo o princpio da inducao matematica.
Entretanto, podemos colocar a seguinte questao. Existe uma maneira de provar
que a induc ao matematica esta correta ou devemos aceita-la como uma hipotese basica.
Colocando a questao em outras palavras, a palavra princpio sgnica teorema ou
hipotese basica? A resposta a primeira questao e que podemos provar que a induc ao
matematica esta correta se assumirmos que os n umeros naturais estao bem ordenados.
Igualmente, podemos provar que os n umeros naturais estao bem ordenados se assumirmos
que o princpio da induc ao matematica esta correto. A situacao e um pouco complicada
pelo fato de que o princpio da induc ao matematica se apresenta de varias formas. Essas
formas existem para simplicar a aplicacao do princpio, embora eles sejam equivalentes
em logica.
O princpio da inducao matematica: Forma forte
Expresso como uma regra de inferencia a regra da inducao matematica e o esquema
(basico) P(0)
(indutivo) para todo k 1, (P(0) P(1) ... P(k) P(k + 1))
para todo n 0, P(n)
Sao possveis outras variac oes. A proposic ao basica poderia ser P(0)P(1)...P(m).
Neste caso a proposicao indutiva seria reduzida a para todo k m, (P(k m) P(k
m+ 1) ... P(k) P(k + 1)). Outra varia cao seria comecar a induc ao em 1 ou em
algum outro n umero em de vez de 0.
Exemplo 80 Todo n umero natural maior que 1 pode ser fatorado como um produto de
primos, onde se entende que um primo e visto como um produto de um primo.
Este exemplo foi provado pela forma fraca da inducao matematica. A prova abaixo
usa um predicado ligeiramente diferente e a forma forte da induc ao matematica.
Prova: Dena P(n) como sendo o predicado
(n e o produto de fatores primos)
Basico: P(2) e verdade porque 2 e primo.
Indutivo: Prove (P(2) P(3) ... Pk) P(k + 1)) e verdadeiro para a
constante k 2.
Caso 1: k + 1 e primo. Portanto P(k+1) e verdadeiro.
104 CAP
ITULO 5. PROVAS
Caso 2: k + 1 e composto, entao k + 1 = mn, para algum inteiro positivo m
e n na sequencia
2, 3, 4, ..., k
Pela hipotese indutiva forte, P(m) e verdadeiro e P(n) e verdadeiro. Portanto,
k + 1 = (um produto de primos)(um produto de primos)
= (um produto de primos)
Portanto, P(k+1) e verdadeiro para cada k maior ou igual que 2. Portanto, pela forma
forte da induc ao matematica, todo n umero natural maior que 1 pode ser fatorado como
um produto de primos.
Exemplo 81 A sequencia
x
0
, x
1
, x
2
, ..., x
n
, ...
e denida pela formula x
n
= 3x
n1
2x
n2
, para todo n 2 e as condicoes iniciais
x
0
= 0 e x
1
= 1.
Provar que x
n
= 2
n
1.
Inducao informal. A tabela seguinte mostra que a formula esta correta, para n =
0, 1, 2, 3, 4. Mas esta especie de inducao e como um experimento cientca, nao existe a
garantia de que a formula esta correta para todo n.
n x
n
2
n
1 a formula esta correta
0 0 1 1 t
1 1 2 1 t
2 3 1 2 0 = 3 4 1 t
3 3 3 2 1 = 7 8 1 t
4 4 7 2 3 = 15 16 1 t
Prova por inducao matematica. Dena P(n) pelo predicado
(x
n
= 2
n
1)
5.1. INTRODUC
AO 105
P(0) e verdadeiro, linha 1 da tabela acima.
P(1) e verdadeiro, linha 2 da tabela acima.
Portanto, a proposic ao basica P(0) P(1) e verdaeira.
Assuma que P(k 1) P(k) e verdadeira para a constante k 1.
Ent ao, x
k1
= 2
k1
1 e x
k
= 2
k
1.
Portanto, x
k+1
= 3x
k
2x
k1
(dado)
= 3(2
k
1) 2(2
k1
1) (hipotese)
= 3 2
k
3 2 2
k1
+ 2
= 3 2
k
2
k
1
= 2 2
k
1
= 2
k+1
1
Portanto, P(k+1) segue, e a proposicao indutiva se verica para todo n umero
natural n. Provamos que x
n
= 2
n
1, para todo n 0.
E possvel mostrar que qualquer proposic ao que possa ser provada pela inducao forte,
pode tambem ser provada pela induc ao fraca, usando um predicado modicado. Tambem,
que qualquer proposicao que possa ser provada pela inducao fraca pode ser provada pela
inducao forte, desde que as hipoteses necessaria na forma forte inclua aquelas da forma
fraca. Na proxima sec ao provaremos a equivalencia entre a induc ao matematica na forma
fraca e na forma forte. Mostraremos, tambem, que se um conjunto for bem ordenado
entao a inducao matematica sera um metodo satisfatorio de prova nesse conjunto. Alem
disso, se a inducao for valida o conjunto deve ser bem ordenado.
Boa ordem
No teorema que segue mostraremos que o princpio da boa ordem garante que cada uma
das formas da induc ao matematica esta correta e que qualquer um desses tres princpios
pode ser tomado como a hipotese basica, a partir da qual as outras podem ser provadas.
Teorema 6 Se uma proposicao puder ser provada na suposicao de qualquer um dos
tres princpios dados abaixo, entao ela pode ser provada usando qualquer um dos outro
princpios.
1. A forma forte do princpio da induc ao matematica.
2. A forma fraca do princpio da induc ao matematica.
3. Os n umeros naturais satisfaz o princpio da boa ordem.
106 CAP
ITULO 5. PROVAS
A estrutura da prova desse teorema consiste em mostrar que:
(1) Se assumirmos a forma fraca podemos deduzir a forma forte.
(2) Se assumirmos a forma forte podemos provar a propriedade da boa ordem.
(3) Se assumirmos a propriedade da boa ordem podemos provar a forma fraca.
Prova(1): Assuma a forma fraca.
A induc ao matematica forte segue do esquema (1) abaixo:
1. P(0)
2. P(0) P(1) ... P(k) P(k + 1), ; k 1
Portanto, S(n) para todo n
Dena o novo predicado S(k) = P(0) P(1) ... P(k)
Ent ao S(0) = P(0) e o esquema (1) acima pode ser substitudo por
1. S(0)
2. S(k) S(k + 1) para uma constante k 0
Portanto, S(n) para todo n.
e isto e o esquema para a inducao fraca, considerado verdadeiro nesta prova.
Prova(2): Assuma a forma forte da induc ao matematica.
Nosso objetivo e provar que os n umeros naturais sao bem ordenados.
O princpio da boa ordem para os n umeros naturais estabelece que todo sub-
conjunto nao vazio de N tem o menor elemento. Provaremos a contrapositiva
se A e um subconjunto de N que possui menor elemento, ent ao A e o conjunto
vazio.
Seja A um subconjunto de N que nao possui menor elemento.
Seja P(n) o predicado (n pertence a A
, o complemento de A.).
(Basico). O n umero 0 nao esta em A, caso contrario ele seria o menor elemento
de A.
Portanto, 0 pertence a A
e P(0) e verdadeiro.
(Indutivo). Suponha que P(0) P(1) ... P(k) e verdadeiro.
Ent ao, 0, 1, 2, ..., k pertence a A
, o complemento de A.
Agora considere k + 1. Se k + 1 estivesse em A, entao ele seria o menor
elemento de A.
5.2. EXERC
ICIOS 107
Mas A nao possui menor elemento. Portanto, k + 1 nao esta em A.
Portanto, P(k+1) e verdadeiro, e pela forma forte da inducao matematica
segue que P(n) e verdadeira para todos os n umeros naturais. Portanto, os
n umeros naturais sao bem ordenados.
Prova(3): Assuma:
1. os n umeros naturais sao bem ordenados.
2. P(0) e verdadeiro.
3. P(k) P(k + 1) para todo k 0.
Pretendemos mostrar que P(n) e verdadeiro para todo n 0.
Seja F o conjunto dos n umeros naturais t sobre os quais o predicado P(t) e
falso. Esperamos mostrar que F e, de fato, o conjunto vazio.
F = t N[P(t) = f
Se F ,= , ent ao F tem o menor elemento m pelo princpio da boa ordem e
P(m) e falso.
Agora, seja m ,= 0, porque P(0) e verdadeiro de (2).
Portanto, m 1 e m1 e um n umero natural.
Agora, m1 nao esta em F porque ele e menor do que o menor elemento de
F.
Portanto, P(m-1) e verdadeiro. Por (3) P(m 1) P((m 1) + 1) e
verdadeiro.
Logo, P(m) e verdadeiro.
A contradicao resultou da hipotese de que F ,= .
Logo F e o conjunto vazio e a proposicao esta provada.
Isto completa a prova de que os tres princpios sao proposic oes equivalentes, sobre os
n umeros naturais.
5.2 Exerccios
1. Prove por casos.
Para todos os inteiros n, n(n + 1)(n + 2), e divisvel por 3
2. Prove, usando a contrapositiva.
Para todos os inteiros m, n se mn for mpar entao m e impar e n e mpar.
108 CAP
ITULO 5. PROVAS
3. Prove pelo metodo direto.
para todos os inteiros n 0, n
3
n e divisvel por 3.
4. Prove por contradic ao.
para todos os inteiros positivos a, n, c, se ab = n e a <
n, entao b >
n.
5. Prove por induc ao matematica.
para todos os inteiros n 3, n
2
> 2n + 1.
Sugestoes:
(1) Caso i: n = 3k + i - 1, para i = 1, 2, 3.
Prove se m e par ou n e par ent ao ma e par.
Fatorize n
3
n.
Assuma que a proposic ao e falsa. Assuma ab = n e a <
n e b
n
P(n) (n
2
> 2n + 1). P(3) e t. Mostre que P(k) P(k + 1), para todo k 3.
6. Prove que o seguinte algoritmo esta correto, relativo a sua poscondic ao. (Assuma
que a precondic ao e satisfeita. Adicione uma assertiva sobre o valor de cada vari avel:
a, b, temp apos cada linha do algoritmo e compare a ultima assertiva com Q).
O algoritmo troca os valores de a e b.
Entradas: Inteiros a, b.
Precondicoes: P (a = X, b = Y ).
4
Sadas: Inteiros a, b.
Poscondic oes: Q (a = Y, b = X).
Metodo:
_
_
_
1.temp b
2.b a
3.a temp
7. Seja p(n) o predicado (5
n
1 + 4n).
(a) Escrever p(1). p(1) e verdadeiro?
(b) Escrever p(k).
(c) Escrever p(k+1).
5.2. EXERC
ICIOS 109
(d) Prove que para todo k 1, se p(k) e verdadeiro entao p(k+1) tambem e.
8. Seja o inteiro n representado na base 10 pela cadeis de dgitos abc.
(a) De o conjunto dos valores possveis para cada a, b, c.
(b) De a expansao literal de n.
(c) Prove que se b = a + c, entao n e divisvel por 11.
(d) A reversa da proposicao em (c) e verdadeiro?
(e) Construa uma proposicao mais geral para (c).
9. Prove que para todos os inteiros n 4, n! > 2
n
.
10. Prova que para todos os inteiros n 5, 2
n
> n
2
.
11. A soma dos n primeiros termos de uma serie geometrica cujo primeiro e a e cuja
diferenca comum e d e denido por S
n
.
S
n
= a(a +d) + (a + 2d) +... + (a + (n 1)d)
Prove que S
n
=
n
2
[2a + (n 1)d].
12. A sequencia S
n
e denida por
S
n
=
_
2S
n1
+ 1 para todo n 1,
0 para n = 0
Prove que S
n
= 2
n
1.
13. Prove que para todos os n umeros naturais n, n
2
2 nao e divisvel por 3.
14. Seja P(n) o predicado (n
2
+n + 1 e par).
Prove que P(k) P(k + 1) para todos os inteiros positivos k. Para qual valor(se
existir) de n P(n) e verdadeiro?
15. Prove que para todos n 0,
2(1)
n
+ (1)
n+1
= (1)
n
16. Prove por induc ao matematica que n
2
n + 1, para todos os inteiros n 2.
17. Prove por induc ao matematica que uma postagem maior ou igual que dois centavos,
pode ser efetuada usando selos de exatamente 2- e 3-centavos.
110 CAP
ITULO 5. PROVAS
18. Uma maquina de venda foi especicada para fornecer somente selos de 2-centavos
e 5-centavos. Assumindo que os estoques de cada selo sao sucientemente grande,
prove que qualquer postagem de 5-centavos ou mais pode ser providenciado pela
maquina.
19. Seja o inteiro n representado na base 10 pela cadeia de dgitos abc.
Prove que se a + b + c for divisvel por 9 ent ao n e divisvel por 9.
Captulo 6
Recursao
Introducao
A recursao e muito importante em computacao. Ela pde ser usada como uma ferramenta para
pensar sobre um problema, para construir um algoritmo, para construir uma denicao ou como
ferramenta de programacao explcita. Ela pode ser uma maneira de se obter uma maquima,
em vez de um programa e ordenar diculdades. Nesta parte, analisaremos a recursao para
resolver problemas, construir algoritmos e denicoes. Usaremos as estruturas de sequencias,
listas e func oes para aplicar o pensamento recursivo. Terminado esta parte, a aluno deveria
ter aprendido o uso de formulas recursivas, como resolver relacoes de recorrencia e num nvel
mais elevado, ele deveria ter adquirido a habilidade de usar o pensamento recursivo na solucao
de problemas.
Em geral, para resolver um problema em computac ao dividimo-lo em problemas mais
simples da mesma especie, resolvemos estes e compomos suas soluc oes para obter a so-
lucao do problema inicial. Se a aplicac ao(possivelmente) repetida desta estrategia de
simplicacao levar a problemas que possam ser resolvidos, entao o problema original po-
de ser resolvido. Tal abordagem e chamada recursiva. Esta abordagem tambem pode
ser aplicada na construcao de alguns algoritmos e denic oes. A recursao requer:
um caso base para o qual e conhecido a solucao do problema, a sada do algoritmo
ou a denic ao.
uma etapa recursiva que fornece a soluc ao para o problema geral, para o algoritmo
ou a denic ao em termos de uma versao mais simples do problema, do algoritmo
ou da denic ao. Mais simples, aqui, signica mais proximo do caso base.
Em parte, a recursao e importante em matematica porque uma proposic ao que envolve
recursao ja sugere um procedimento de sua prova(a qual e por inducao matematica).
111
112 CAP
ITULO 6. RECURS
AO
Pensamento recursivo
Ate aqui so escrevemos expressoes como
1. 1 + 2 +... + 99
2. 20 19 ... 2 1
Os pontos, ..., acima, signicam(supostamente) que o padrao dos primeiros ter-
mos continua ate o ultimo. Entretanto, este padrao nao e estabelecido explicitamente,
e consequentemente, do ponto de vista de um construtor de algoritmos nao esta claro
o que deve ser feito. Uma maneira construtiva de escrever uma expressao contendo um
procedimento repetitivo e por meio de uma func ao denida recursivamente.
Denimos a funcao soma e fatorial, sobre os n umeros naturais, como segue:
1. soma.
soma: N N
soma(n) =
_
0 se n = 0
n +soma(n 1) se n ,= 0
Exemplo 82 Calcular soma(99)
Solucao: soma(99) = 99 + soma(98).
Para avaliar soma(98) apliquemos a denicao novamente
98 + soma(97)
.
.
.
A chamada recursiva para quando n = 0 com a avaliacao soma(0) = 0.
Portanto, a avaliacao denitiva e dada por:
(99+(98+...(1+0)...)) = 4950.
2. fatorial
fatorial:N N
fatoria(n) =
_
1 se n = 0
n fatorial(n 1) se n 1
A notacao usual para fatorial(n) e n! Com esta notacao, n! = 1, se n=0 ou n(n1)!,
se n 1.
Exemplo 83 Calcular fatorial(20),(isto e, calcular 20!).
113
Solucao: fatoria(20) = 20 fatorial(19)
Para avaliar fatorial(19) apliquemos a denicao novamente
19 fatorial(18)
.
.
.
A chamada recursiva para em n = 0, com fatorial(0) = 1.
A multiplicacao denitiva e entao avaliada, dando:
(20 (19 ...(1 1)...)) = 2.4329 10
18
Sigma ou notacao de somatoria
A notacao de somatorio ou sigma (a letra grega ) e usada para indicar a adiac ao
repetida.
Se f e uma func ao denida sobre os n umeros naturais, ent ao a notacao de somatorio
e denida para os naturais n e a, com n a, por:
n
j=a
f(j) = f(a) +f(a + 1) +... +f(n).
A soma no lado direito tem n a + 1 termos. (A vari avel j e chamada variavel muda
porque ela pode ser substituda por uma outra variavel sem afetar a soma.)
Por exemplo:
99
j=1
j = 1 + 2 +... + 99
A notacao pode ser usada para expressar a expansao decimal de um n umero na base
x, como foi visto anteriormente. Portanto:
n = a
k
a
k1
...a
0
=
k
j=0
a
j
x
j
Para evitar uma denic ao envolvendo ..., a notacao do somatorio pode ser denido
recursivamente como segue:
n
j=a
f(j) =
_
0 se n < a
f(n) +
n1
j=a
f(j) se n a
114 CAP
ITULO 6. RECURS
AO
Exemplo 84 Calcular:
8
i=6
(2i 3)
8
i=6
(2i 3) = (2 8 3) +
7
i=6
(2i 3)
= (2 8 3) + (2 7 3) +
6
i=6
(2i 3)
= (2 8 3) + (2 7 3) + (2 6 3) +
5
i=6
(2i 3)
= (2 8 3 + (2 7 3 + (2 6 3 + 0)))
= 33
Alguns resultados gerais sobre a notac ao
sao uteis.
n
j=a
(f(j) +g(j)) =
n
j=a
f(j) +
n
j=a
g(j)
n
j=a
c = c(n a + 1) (c constante)
n
j=a
cf(j) = c
n
j=a
f(j)
Exemplo 85
8
j=6
(2j 3) =
8
j=6
2j +
8
j=6
(3)
= 2
8
j=6
j + (3)(8 6 + 1)
= 2(6 + 7 + 8) + (3)(3)
= 33
Resolucao de problemas
No que segue, daremos alguns exemplos com o objetivo de ilustar a abordagem recursiva
para a resolucao de problemas.
Exemplo 86 Achar uma solucao recursiva para o n umero de sequencias binarias de n-
dgitos sem 0s consecutivos.
Uma sequencia binaria e uma sequencia de 0s e 1s. 11010 e uma sequencia
binaria de 5-dgito que satisfaz a condicao.
Dena a
n
como sendo o n umero de sequencias binarias de n-dgitos sem zeros
consecutivos.
Para n = 1 as sequencias possveis sao 0, 1. Portanto, a
1
= 2.
Para n = 2 as sequencias possveis, que satisfazem `as condicoes, sao 11, 10,
01. Portanto, a
2
= 3.
115
Agora, toda sequencia de comprimento n termina em 1 ou 0. Existe exatamen-
te uma sequencia de comprimento n terminando em 1, para cada sequencia
legtima de comprimento n - 1, pois colocando um 1 no m de uma sequencia
nao quebra a condicao requerida. Para que uma sequencia com mais que um
membro termine em 0 e necessario que ela termine em 10, para satisfazer a
condicao. Existe exatamente uma sequencia de comprimento n terminando
em 10, para cada sequencia legtima de comprimento n - 2. Portanto:
a
n
= o n umero terminando em 1 + o n umero terminando em 10
= a
n1
+a
n2
A solucao recursiva do problema e entao:
a
n
=
_
_
_
2 se n = 1
3 se n = 2
a
n1
+a
n2
se n 3
A formula recursiva gera a sequencia
2, 3, 5, 8, 13, ..
onde cada termo apos o segundo e obtido adicionando seus dois predecessores.
Exemplo 87 Achar o n umero das sequencias ternarias de n-dgito que tem um n umero
par de 0s. Uma sequencia ternaria e aquela constituda de 0s 1s e 2s. A sequencia
0011010 e exemplo de uma sequencia ternaria que satisfaz a condicao exigida no problema.
Uma sequencia de comprimento n deve terminar em 0, 1 ou 2. Aquelas sequencias
terminando em 1 ou 2 sao formadas colocando-se um 1 ou um 2 apos uma sequencia de
comprimento n - 1 que satisfaz a condicao. Por outro lado, uma sequencia terminando
em 0 e formada colocando-se um 0 apos uma sequencia de comprimento n - 1 que tem
um n umero mpar de 0s.
O n umero total de sequencias ternarias de comprimento n - 1 e 3
n1
. Portanto, existem
3
n1
s
n1
sequencias ternarias de comprimento n - 1 com um n umero mpar de zeros.
Portanto:
s
n
= n
o
terminando em 1 ou 2 + n
o
terminando em 0
= 2s
n1
+ (3
n1
s
n1
)
= s
n1
+ 3
n1
Existem duas sequencias de comprimento 1, que sao 1, 2. (aquela constituda de um
0 nao contem um n umero par de 0s.) Portanto, a solucao recursiva e:
s
n
=
_
2 se n = 1
s
n1
+ 3
n1
se n 2
A formula recursiva gera a sequencia
116 CAP
ITULO 6. RECURS
AO
2, 2 + 3, 2 + 3 + 3
2
...
isto e, 2,5,14,41,...
Exemplo 88 Um emprestimo de r$20.000 tem de ser pago em 12 prestacoes anuais
iguais. O juro e de 14% ao ano, computado anualmente. Achar a prestacao anual.
As prestacoes devem cobrir o capital principal mais o juro. Mas, a componente de
juro de cada prestacao e diferente. A componente de juro se reduz cada ano, pois o debito
decresce a cada ano.
Para calcular o valor do juro num dado ano e preciso conhecer o debito nesse ano, no
entanto so conhecemos o debito no incio(20.000 reais) e a exigencia de que no m ele
seja 0 reais. Entretanto se o debito do precendente fosse conhecido, seria possvel calcular
o juro, e subtraindo a parte xa, determinar o debito no m do ano.
E conhecido o debito
no incio do primeiro ano. Portanto, a exigencia para achar o debito, no m de cada
ano, como uma solucao recursiva esta satisfeita. A tabela de tempo abaixo ilustra o que
acontece.
Debito(em reais)
20.000 d
1
d
j
d
12
= 0
0 1 j 12
1
0
ano j-esimo ano 12
0
ano
O primeiro ano comeca no tempo 0 e termina no tempo 1. Em geral, o j-esimo ano
comeca no tempo j.
O debito no m do j-esimo ano, apos cada pagamento no m de cada ano ter sido
feito, e representado por d
j
reais.
O pagamento anual e representado por r reais.
debito no m do ano = debito no m do ultimo ano + juros - o que foi pago
d
j
= d
j1
+ (.14)d
j1
r
= (1.14)d
j1
r
A formula recursiva para d
j
em termos de d
j1
e d
j
= (1.14)d
j1
r.
O fato base e d
0
= 20000. Sabemos que d
12
= 0. Aplicando repetidamente a etapa
recursiva resulta:
d
12
= (1.14)d
11
r
= (1.14)((1.14)d
10
r) r
= (1.14)
2
d
10
r[1 + 1.14]
= (1.14)
3
d
9
r[1 + 1.14 + (1.14)
2
]
=
.
.
.
= (1.14)
12
d
0
r[1 + 1.14 + (1.14)
2
+... + (1.14)
11
]
= 20000(1.14)
12
r[1 + 1.4 + (1.14)
2
+... + (1.14)
11
]
117
Dado que o debito tem que ser pago em 12 anos, temos d
12
= 0 e a equacao pode,
agora, ser resolvida para r. Usando a formula para a soma de uma serie geometrica
obteremos:
r(
1.14
12
1)
1.141
= 20000(1.14)
12
portanto r =
20(1.14)
12
(.14)
1.14
12
1
= 3533.3865
Logo, o pagamento deve ser `a base de 3533.39 reais ao ano.
DISCUSS
ITULO 6. RECURS
AO
Dado a sequencia crescente < x
p
, x
p+1
, ..., x
m
, ..., x
q
>, de x, dena o termo central
como sendo o termo para o qual
m = [
p +q
2
] se p q; m nao esta denido para p > q.
p e o subescrito do menor termo e q do maior dos termos nao rejeitados na busca.
Dena a lista para cima como sendo a sequencia crescente < x
m+1
, ..., x
q
> .
Dena a lista para baixo como sendo a sequencia decrescente < x
p
, x
p+1
, ..., x
m1
>.
Algoritmo 9 (Busca binaria) Para pesquisar uma sequencia crescente para encontrar
a localiza cao da chave a, ou mostrar que a nao esta na sequencia.
entradas: a, o elemento que estamos buscando.
Uma sequencia < x
1
, ..., x
n
>, com os ndices de 1 a n,
do primeiro ao ultimo elemento da sequencia.
precondic oes: x
1
x
2
... x
n
.
sada: Um registro.
metodo: p 1
q n
Repita
_
_
_
m [
p+q
2
]
se a < x
m
ent aoq m1(pesquisar lista para baixo)
senao, p m+ 1(pesquisar lista para cima)
ate x
m
= a ou p > q.
se x
m
= a, entao registre x
m
= a;
senao registre a nao foi encontrado.
Prova: A prova de que esse algoritmo, de fato, faz aquilo que pretendemos, e por
inducao matematica sobre o n umero de termos na sequencia.
Dena l como sendo q p +1 para a sequencia < x
p
, ..., x
q
>. Portanto, l e o n umero
de termos na sequencia.
Dena P(l) como sendo o predicado o algoritmo pesquisa corretamente todos as
sequencias crescentes < x
p
, ..., x
q
> com l termos.
Basico: l = 1. Mostrar que P(1) e verdadeiro.
Se l = 1, entao p = q e a sequencia so tem um termo, x
p
. O ndice m e calculado
para ser [
p+q
2
] = p. Se x
p
= a esse fato e registrado. Se x
p
> a o valor de q e reduzido
(q m1) e saimos do laco com p > q. Novamente o algoritmo termina com o registro
correto de que a nao foi encontrado. Portanto P(1) e verdadeiro.
Etapa indutiva: Mostrar que P(1) P(2) ... P(k) P(k + 1).
Assuma que o algoritmo pesquisa corretamente todas as sequencias crescentes com um
n umero de termos k, ou menos, com k 1. Considere uma sequencia crescente com k +1
119
termos. Existirao no mnimo dois termos na sequencia. O efeito da aplicacao do algoritmo
e ou encontrar a ou remover no mnimo um dos termos da sequencia. O resultado e uma
sequencia que sera pesquisada corretamente(pela hipotese indutiva.)
Pelo princpio(forte) da inducao matematica o algoritmo esta correto para toda se-
quencia crescente com um ou mais termos.
A etapa indutiva corresponde a um passo na repetic ao do laco. Cada passo ou
encontra a ou divide pela metade o n umero de termos na sequencia a ser pesquisada. No
pior caso, seria preciso log
2
n partic oes para reduzir o n umero de termos na sequencia a
um. Por exemplo, uma sequencia com 1000 termos precisaria dez partic oes pela metade
para reduzi-la a um termo. No futuro consideraremos a eciencia do algoritmo.
Exemplo 90 Determine se 2.77 esta na sequencia ordenada
ln 10, ln 11, ln12, ln13, ln14 ; ln15, ln16, ln17
onde cada membro da sequencia e dado com duas casas decimais exatas. Estamos
supondo que nao sabemos nada sobre a funcao ln, alem do fato de que seus valores sao
avaliadas numa calculadora.
sequencia < x
p
, ..., x
q
> p > q p q m x
m
x
m
= a?
x
1
, ..., x
8
f 1 8 4 2.56 nao
x
5
, ..., x
8
f 5 8 6 2.71 nao
x
7
, x
8
f 7 8 7 2.77 sim
A pesquisa mostra que o 7
o
termo na sequencia e 2.77.
Recursao e listas
Um conjunto de elementos numa certa ordem pode ser chamado uma lista. As listas sao
muito importantes em computac ao. Na linguagem comum, uma sentenca pode ser vista
como uma lista de palavras, e cada palavra pode ser vista como uma lista de caracteres
alfabeticos. Potanto, uma lista pode consistir de uma lista de elementos, que por sua vez
tambem e uma lista. A seguir deniremos algumas func oes sobre listas.
Lista. O conjunto de todas as listas sob consideracao sera denotado por lista. As
listas podem ser representadas por l
1
, l
2
, .., l ou escrevendo seus elementos.
As listas [a,b,c], [a,a,b,c] e [c,a,b] sao listas diferentes.
Elemento. O conjunto de todos os elementos sob consideracao para uma lista parti-
cular, pode ser char, o conjunto dos caracteres, ou N, o conjunto dos n umeros naturais.
O conjunto E sera usado para denotar um conjunto geral de elementos, a partir do qual
sao escolhidos os elementos de qualquer lista particular.
120 CAP
ITULO 6. RECURS
AO
Lista vazia. Uma lista sem elementos e chamada lista vazia, escrito [ ].
Comprimento. O n umero de elementos numa lista e chamado seu comprimento.
Se l = [x
1
, x
2
, ..., x
n
] entao, comprimento(l) = n.
Existem tres func oes denidas sobre listas que sao particularmente importante. As
funcoes cabeca(), cauda() e concatenacao() fornecem uma base a partir da qual todas as
outras operac oes comuns em listas podem ser obtidas(por recursao).
Cabeca. A cabeca de uma lista e denida como sendo o seu primeiro elemento. A
cabeca da lista l sera escrita cabeca(l), que e um elemento, nao uma lista. A cabeca nao
pode ser denida sobre a lista vazia.
Cauda. A cauda de uma lista e a lista obtida removendo a cabeca da lista original.
A cauda da lista l sera denotada por cauda(l), que e uma lista. A cauda nao pode ser
denida sobre a lista vazia.
Concatenacao. A lista obtida colocando a sequencia l
2
apos a sequencia l
1
e chamada
concatenacao(l
1
, l
2
) e sera escrita l
1
concl
2
ou conc(l
1
, l
2
).
Por exemplo:
(a) cabeca([s, e, t, t, e, r]) = s
(b) cauda([s, e, t, t, e, r] = [e, t, t, e, r]
(c) conc([c, a, r], [r, o]) = [c, a, r]conc[r, o] = [c, a, r, r, o].
Existem muitas funcoes que podem ser denidas sobre listas. Muitas vezes, e vantagoso
apresentar essas denicoes na forma recursiva, denindo uma funcao sobre uma lista em
termos da mesma funcao sobre uma lista menor. O exemplo a seguir mostra como algumas
funcoes sobre listas podem ser denida recursivamente.
Comprimento. Construir uma denicao recursiva da funcao comprimento(comp) de
uma lista.
comp:listaN
comp(l) =
_
0 l = [ ]
1 +comp(cauda(l)), senao
Reversa. Construir uma denicao recursiva da funcao que reverte a ordem dos ele-
mentos numa lista.
121
reverta : lista lista
reverta(l) =
_
l, se l = [ ]
reverta(cauda(l)) conc [cabeca(l)], senao
Para ilustrar a operacao da denicao recursiva para a reversa ela sera aplicada sobre
a lista [c,a,t].
reverta([c, a, t] = reverta([a, t]) conc [c]
= (reverta([t]) conc [t] conc [c]
= ((reverta([ ]) conc [a] conc [c]
= [ ] conc [t] conc [a] conc [c]
= [t, a, c]
Inserir. Construir uma denicao recursiva de uma funcao que insere um certo carac-
tere numa dada posicao numa lista dada.
insera : lista E N lista
Uma precondicao para insira e n [l[ +1. Leia insira(l, e, n) como insira o caractere
e na posic ao n na lista l.
insira(l,e,n) =
_
[e] conc l se n = 1
[cabeca] conc insira(cauda(l), e, n 1), senao
Recursao e sequencias
Sequencias podem ser denidas recursivamente como nos exemplos anteriores. A se-
quencia geometria e a sequencia aritmetica sao sequencias bem conhecidas como sendo
denidas, mais naturalmente, por recursao.
Sequencia geometrica.
t
n
= rt
n1
para n 2, t
1
= a
Desdobrando esta denicao obteremos a sequencia geometrica.
a, ar, ar
2
, ..., ar
n1
sequencia aritmetica
tn = t
n1
+d para n 2, t
1
= a
122 CAP
ITULO 6. RECURS
AO
Desdobrando esta denicao obteremos a sequencia aritmetica:
a, a +d, a + 2d, ..., a + (n 1)d
A denicao recursiva para uma sequencia consiste de uma relacao de recorrencia
mais as condic oes iniciais.
Uma relacao de recorrencia para uma sequencia t
1
, t
2
, . . . relaciona cada termo da
sequencia a um ou mais termos precedentes.
As condic oes iniciais para essa relacao de recorrencia especica os valores dos termos
t
1
, t
2
, . . . para aplicar a relacao de recorrencia.
O n umero dos termos precedentes exigida pela relacao de recorrencia e igual ao n umero
das condi coes e sera chamado a ordem da relacao de recorrencia.
Observacao(para aqueles que ja zeram calculo). Uma relacao de recorrencia pode ser
tratada como uma versao discreta de uma equacao diferencial.
O seguinte exemplo ilustra a denicao recursiva de uma sequencia.
Exemplo 91 A denicao
a
n
= 2a
n1
a
n2
, n 2 (relacao de recorrencia)
a
0
= 1, a
1
= 2 (condicoes iniciais)
produz a sequencia 1,2,3,4,... A relacao de recorrencia e de ordem 2.
Exemplo 92 A denicao
s
n
s
n1
= n 1, n 2 (relacao de recorrencia)
s
1
= 0 (condicoes iniciais)
gera a sequencia 0,1,3,6,... A relacao de recorrencia e de ordem 1.
Exemplo 93 A relacao de recorrencia
a
n
= 4a
n2
, n 2
e de ordem 2, embora so exista um termo na formula para a
n
. Para determinar os
termos da sequencia sao necessarios dois valores iniciais.
Exemplo 94 A denicao
x
n
=
_
2x
n1
+ 1 se n 2 (relacao de recorrencia)
1se n = 1 (condicao inicial)
gera a sequencia 1,3,7,15,.... Esta e uma recorrencia de primeira ordem.
123
Exemplo 95 A denicao
s
n
2s
n1
3s
n2
= 0, n > 1 (relacao de recorrencia)
s
0
= 3, s
1
= 1 (condicoes iniciais)
gera a sequencia 3,1,11,25,... Esta e uma relacao de recorrencia de segunda ordem.
As sequencias nos exemplos 102, 104 e 95 sao escritas como homogeneas com
coecientes constantes pois todos os termos sao da mesma especie, nomeadamente termos
da sequencia com coeentes constantes.
Calculo dos termos de uma sequencia
Seja a sequencia s
0
, s
1
, ...,
Um calculo iterativo acha o n-esimo termo da sequencia calculando todos os termos
s
0
, s
1
, ..., ate s
n
.
Um calculo recursivo acha s
n
encontrando os termos dos quais s
n
depende, e entao
achando os termos precedentes dos quais esses dependem e assim sucessivamente, ate
atingir as condicoes iniciais, quando entao todos os termos necessarios para a avaliacao
de s
n
serao calculados.
Um terceiro metodo para a avaliacao de s
n
e encontrar uma formula explcita para s
n
como uma funcao de n. Este metodo e chamado resolver a relacao de recorrencia para
s
n
. A efeciencia de cada um desses metodos varia muito. Embora somente mais adiante
discutiremos eciencia de algoritmos em geral, vale a pena analizar o problema agora no
contexto do calculo de termos da sequencia.
Considere a sequencia s
0
, s
1
, ... denida por uma relacao de recorrencia de segunda
ordem. Uma abordagem iterativa avalia s
2
a partir dos valores dados de s
1
e s
0
, s
3
a
partir de s
2
e s
1
, ... e nalmente s
n
a partir de s
n1
e s
n2
.
Existem, portanto, no todo n - 1 avaliacoes.
Uma abordagem recursiva avalia s
n
a partir dos dois antecessores (s
n1
, s
n2
) e cada
um desses dois dos seus dois predecessores e assim por diante, dobrando o n umero de
chamadas da funcao em cada estagio no sentido de s
0
e s
1
, cujos valores sao conhecidos.
Para completar o calculo, `as vezes e necessario avaliar entre 2
n1
e 2
n2
funcoes.
Para achar o 11
o
termo numa sequencia de segunda ordem, um metodo iterativo re-
quereria 10 avaliacoes de funcoes e um metodo recursivo requereria entre 512 e 1024
avaliacoes. Portanto, existe uma grande vantagem no uso do metodo iterativo em ava-
liacoes com mais que alguns termos, para este tipo de sequencia. Entretanto, a comparacao
nao e universalmente em favor do metodo iterativo. Podemos, com frequencia, dispor o
metodo recursivo de modo que ele possa competir, em termos de eciencia, com o metodo
iterativo.
124 CAP
ITULO 6. RECURS
AO
Por outro lado, se for possvel achar a solucao da relacao de recorrencia, a avaliacao
por formula pode ate ser mais eciente que a recursao ou a iteracao. Por exemplo,
mostramos, abaixo, que a formula para s
n
, no exemplo 102 e s
n
= n + 1. Isto requer
um unico calculo, enquanto o metodo iterativo necessita n 1 desses calculos.
O esquema iterativo para o calculo dos termos numa sequencia pode ser facilmente
escrito como um algoritmo(e facilmente programado). O exemplo a seguir ilustra como
isso pode ser feito.
Exemplo 96 Desenvolver um algoritmo iterativo para calcular a relacao de recorrencia
no exemplo 102.
Chamaremos precessor de um termo aquele termo que vem antes dele. A re-
lacao de recorrencia no exemplo 102 pode agora ser estabelecido como o
termo corrente e duas vezes o primeiro predecessor menos o segundo predeces-
sor.
entradas: n, um n umero natural
precondicoes: n > 1.
metodo: p0 1 (valor inicial para o segundo predecessor)
p1 2 (valor inicial para o primeiro predecessor)
para j = 2 a n
_
_
a 2 p1 p0
(derivada de a
n
= 2a
n1
a
n2
)
p0 p1 (atualiza o segundo predecessor)
p1 a (atualiza o primeiro predecessor)
sada: a.
poscondic oes: a = a
n
, denido no exemplo 102.
Resolvendo uma relacao de recorrencia atraves da observacao de um padrao
Uma relacao de recorrencia pode, `as vezes, ser resolvida observando alguns termos na
sequencia e conjecturando uma formula para o termo geral.
E necessario provar que esta
formula esta correta. Isto pode ser feito pelo metodo de inducao matematica.
O calculo de alguns termos do exemplo 102 gera:
n = 2 a
2
= 2 2 1 = 3
n = 3 a
3
= 2 3 2 = 4
n = 4 a
4
= 2 4 3 = 5
Podemos conjecturar que a
n
= n + 1. Mas estara esta formula correta?
125
Prove que a
n
= n + 1 e a formula correta para o termo geral da sequencia denida
no exemplo 102, ou seja:
a
n
= 2a
n1
a
n2
, n 2. a
0
= 1, a
1
= 2
Prova Etapa basica: a
0
= 1 e a
1
= 2
Portanto, a
n
= n + 1 para n=0 e n=1.
Etapa indutiva: Assuma que a formula esta correta para dois termos suces-
sivos especcos da sequencia. Isto e, assuma que para um k especco
a
k
= (k 1) + 1 = k
a
k2
= (k 2) + 1 = k 1
entao o sucessor e
a
k
= 2a
k1
a
k2
pela relacao de recorrencia
= 2(k) (k 1) por hipotese
= k + 1
Portanto, a formula esta correta para n = k.
Pelo princpio da inducao matematica:
a
n
= n + 1 para todos os inteiros n 0.
Os exemplos 103 e 105 podem ser resolvidos analogamente.
Exemplo 97 s
n
= s
n1
+ (n 1), n 2, s
1
= 0.
Sequencia: 0, 0+1, 0+1+2, 0 + 1 + 2 + 3, ...
A conjectura, s
n
=
n(n1)
2
, pode ser provada por inducao matematica.
Exemplo 98 x
n
= 2x
n1
+ 1, n 2, x
1
= 1.
Sequencia: 1, 3, 7, 15, ... A conjectura x
n
= 2
n
1 pode ser provada por
inducao matematica.
126 CAP
ITULO 6. RECURS
AO
Relacoes de recorrencia de segunda ordem, homogeneas e lineares
Nao e possvel, em geral, conjecturar solucoes. No entanto, existem bons metodos pa-
ra encontrar solucoes para algumas relacoes de recorrencias particulares. Analizaremos
relacoes de recorrencia de segunda ordem, homogeneas, de coecientes constantes.
Teorema 7 (Linearidade) Se s
n
+ as
n1
+ bs
n2
= 0 tem solucao f(n) e g(n), entao
c
1
f(n) +c
2
g(n) tambem e uma solucao, para c
1
, c
2
constantes arbitrarias.
Prova: Substitua s
n
por c
1
f(n) +c
2
g(n) no lado esquerdo da relacao de recorrencia.
(c
1
f(n) +c
2
g(n)) +a(c
1
f(n 1) +c
2
g(n 1))
b(c
1
f(n 1) +c
2
g(n 1))
= c
1
(f(n) +af(n 1) +bf(n 2)) +c
2
g(n) +ag(n 1)+
bg(n 2))
= c
1
0 +c
2
0
= 0
As equacoes para as quais este teorema se verica sao denominadas lineares. Assim,
podemos agora estabelecer que relacooes de recorrencias homogeneas com coecientes cons-
tantes sao relacoes de recorrencia lineares. A prova nao depende da ordem da relacao de
recorrencia e portanto podemos concluir que todas relacoes de recorrencia homogeneas
com coecientes constantes sao lineares.
Exemplo 99 Achar a solucao para o exemplo 95 repetido abaixo.
s
n
= 2s
n1
+ 3s
n2
, s
0
= 3, s
1
= 1.
Sabemos que as solucoes deste tipo de equacao tem a forma
s
n
= x
n
para algum x.
Tentemos a solucao f(n) = x
n
, onde x nao e ainda conhecido.
s
n
2s
n1
3s
n2
= 0 (6.1)
x
n
2x
n1
3x
n2
= 0 (6.2)
127
Dividindo a segundo equacao por x
n2
:
x
2
+ 2x 3 = 0 (6.3)
(x 3)(x + 1) = 0 (6.4)
Portanto, x = 3 ou x = 1.
As solucoes da relacao de recorrencia sao f(n) = 3
n
e g(n) = (1)
n
.
Pelo teorema da linearidade:
s
n
= c
1
3
n
+c
2
(1)
n
.
Esta equacao e a solucao geral para a relacao de recorrencia 6.1. Observe
que ela tem duas constantes arbitrarias c
1
e c
2
que corresponde ao fato de que
a relacao de recorrencia e de segunda ordem.
Ascondicoes iniciais nos possibilitam determinar c
1
, c
2
.
s
0
= c
1
3
0
+c
2
(1)
0
= 3
s
1
= c
1
3
1
+c
2
(1)
1
= 1
c
1
+c
2
= 3
3c
1
c
2
= 1
adicionando 4c
1
= 4
c
1
= 1
c
2
= 2
A solucao e, portanto,
s
n
= 3
n
+ 2(1)
n
, para n 0
A equacao 6.3
x
2
2x 3 = 0
e chamada equacao caractstica para s
n
= 2s
n1
3s
n2
= 0.
128 CAP
ITULO 6. RECURS
AO
Exemplo 100 (Fibonacci): Os n umeros de Fibonacci sao denidos como os termos da
sequencia,
F(n) =
_
1 se n = 0 ou n = 1
F(n 1) +F(n 2) se n 2,
uma relacao de recorrencia homogenea de segunda ordem.
A equacao caracterstica e
x
2
x 1 = 0
com solucao: x =
1+
5
2
ou
1
5
2
Portanto, F(n) = c
1
(
1+
5
2
)
n
+c
2
(
1
5
2
)
n
Vamos escrever F
n
em lugar de F(n). Com os valores iniciais F
0
= F
1
= 1
obteremos:
c
1
=
1+
5
2
5
e c
2
= (
1
5
2
5
)
portanto F
n
=
1
5
(
1+
5
2
)
n+1
5
(
1
5
2
)
n+1
Considerando o valor absoluto do segundo termo podemos ver que F
n
e o
inteiro mais proximo de
1
5
(
1 +
5
2
)
n+1
Comentario historico: Leonardo de Pisa, conhecido como Fibonacci, foi um co-
merciante italiano. Ele viajou em muitas partes do mundo islamico daquela epoca. Seu
Liber Abaci apareceu como um manuscrito em 1202, com ampla circulacao. Este manus-
crito desempenhou um papel importante na introducao da matematica
Arabe na Europa.
O livro contem um problema cuja solucao e a sequencia 1, 1, 2, 3, 5, 8,... onde cada ter-
mo apos o segundo e a soma dos dois termos que o precedem. Os n umeros sao chamados
n umeros de Fibonacci, tendo aparecido em muitas investigacoes.
6.0.1 EXERC
ICIOS
Em geral, a equacao caracterstica de uma relacao de recorrencia homogenea de segunda
ordem com coecentes constantes e uma equacao quadratica e como tal ela tem duas razes
distintas, uma raz repetida ou nenhuma raz real. O caso da raz repetida e dado no
exerccio 31 que pode ser tentado por aqueles que tem algum conhecimento de n umeros
complexos.
129
1.
(a)Calcule :
3
i=0
(i
2
1) (b)
2
i=2
(2j + 3) (c)
1
i=2
(i + 1)
2. Uma funcao produto e denida sobre os n umeros naturais por:
produto(n) =
n
i=a
f(i) =
_
f(a) f(a + 1) ... f(n) se n a
1 se n < a
Dar uma denicao recursiva para a funcao produto.
3. (a)Compute
5
i=1
i
2
(b)Mostre que
n
i=1
= (n!)
2
(c)Compute
1
i=1
2i
4. Uma sequencia de quadrados pode ser colorida de modo que cada um dos quadrados
seja vermelhos ou branco. Seja a
n
o n umero de maneiras de colorir a sequencia
de tal modo que nunca dois quadrados vermelhos sejam adjacentes. Encontre uma
relacao de recorrencia para a
n
.
5.
E necessario formar cadeias(strings) com as letras do alfabeto
= a, b. Seja s
n
o n umero de cadeias contendo n letras que nao contem a sequencia ab.
(a) Encontre uma formula recursiva para s
n
.
(b) Encontre uma formula para s
n
em termos de n.
6. Ache uma equacao recursiva para s
n
, o n umero de sequencias de n-dgitos compostas
dos dgitos 0, 1, 2, nas quais nenhuma das sequencias contem 1s consecutivos.
(Para n=5, 00121, 10121 sao exemplos possves de tais sequencias. 20110 nao sera
permitida.)
7. Um emprestimo de r$30000 deve ser dividido em prestacoes mensais iguais de r$500.
A taxa de juro e de 15% ao ano, composto mensalmente. O debito restante e encon-
trado calculando o debito mais juros menos o pagamento em qualquer tempo. Seja
d
n
o debito restante no m do n-esimo mes, exatamente apos ter sido calculado o
juro do mes e o pagamento do mes corespondente.
Escrever uma formula recursiva que permita calcular d
n
.
Construir um algoritmo para determinar o n umero de pagamentos, o total de juros
pagos e a quantidade de pagamentos no ultimo pagamento.
8. Uma soma de r$5000 e depositada numa conta que paga 1% de juros compostos
mensalmente. A partir da, por dezoito meses, e acrescentado `a conta r$200 ao m
de cada mes. Seja s
n
a enconomia da poupanca incluindo juros, na conta, no m
do n-esimo mes, imediatamente apos terem sidos adicionados o valor de deposito
mensal e juros.
130 CAP
ITULO 6. RECURS
AO
(a) Encontre uma relacao de recorrencia para s
n
.
(b) Encontre s
18
.
9. Procuramos uma chave para a sequencia de chaves arranjadas em ordem ascendente.
x
1
, x
2
, ..., x
100
Suponha que a chave que procuramos(desconhecida para nos) seja x
18
, a decima
oitava chave na sequencia. Usando pesquisa binaria para examinar a chave, qual
chave seria examinada antes que a da direita fosse encontrada?
10. Cada n umero na sequencia seguinte e armazenado correto ate duas casas decimais
e colocados numa lista.
150,
151, ...,
165
Caminhe numa busca binaria para determinar se 12.49 esta na lista, ou mostre que
nao esta.
11. A funcao remova( ) mapeia um caractere, x, e uma lista de caracteres, l, em uma
lista. Ela esta denida recursivamente por
remova(x,l) =
_
_
_
l se l =< >
remova(x, cauda(l)) se cabeca(l) = x
< cabeca(l) > [[remova(x, cauda(l)) caso contrario
Os tres casos devem ser entendidos como aplicados na ordem dados na denicao.
Encontre a sada para remova(e, < e, v, e, n >), e descreva em palavras o que e que
remava() faz.
12. Dena, recursivamente, uma funcao removaPrimeiro() que remove a primeira ocorrencia
de um caractere numa lista de caracteres.
13. Dena, recursivamente, uma funcao substitua() que substitui toda ocorrrencia de
um caractere por um outro de lista de caracteres.
14. Construa uma denicao recursiva de uma funcao ePar?() que mapeia os n umeros
do conjunto 0, 1, 2, 3,.. em B = t, f, retornanado t se o n umero for par e f,
se o n umero for mpar.
15. Construa uma funcao recursiva para o comprmento() de cadeias de um alfabeto A.
131
16. Construa uma denicao recursiva para a funcao potencia(). A funcao e denida
para os inteiros a, n onde a > 0, n 0, por:
potencia(a,n)=
_
1, se n = 0
a a ... a, (n fatores) se n 1
17. As mensagens sao transmitidas por um canal de comunicacao usando dois sinais. A
transmisao de um sinal requer um milesimo de segundo e o outro sinal requer dois
milesimo. Seja x
n
o n umero de diferentes mensagens consistindo de sequencias des-
ses dois sinais que podem ser enviadas em n milesimo de segundos. Cada sinal numa
mensagem segue imediatamente o anterior. Encontre uma relacao de recorrencia
para x
n
, incluindo as condicoes iniciais.
18. A sequencia x
n
e dada por:
x
n
=
_
_
_
1 se n = 1
3 se n = 2
3x
n1
2x
n2
se n > 2
(a) Construa um algoritmo para achar x
200
.
(b) Resolver a relacao de recorrencia para achar uma formula para x
n
, em termos
de de n,
19. Achar uma formula para s
n
em termos de n, dados s
0
= 1 e s
n
= 3s
n1
+ 2, para
n 1.
20. Encontre uma formula para x
n
em termos de n, dados x
0
= 4, s
1
= 1 e para n > 1,
21. Encontre uma formula para s
n
em termos de n, dados s
0
= 4, s
1
= 1 e para n > 1,
s
n
+s
n1
2s
n2
= 0
22. Encontre uma formula para a
n
em termos de n, dado que a
0
= 4, a
1
= 14 e
a
n
6a
n1
+ 8a
n2
= 0 para n 2.
23. Resolver a relacao de recorrencia(isto e, achar uma formula para a
n
em termos de
n):
a
n
= a
n1
+ 6a
n2
se n 2; a
0
= 2 a
1
= 6.
132 CAP
ITULO 6. RECURS
AO
24. Mostre que s
n
= n5
n
e uma solucao da relacao de recorrencia:
s
n
10s
n1
+ 25s
n2
= 0
Qual e a solucao geral?
25. Resolver a relacao de recorrencia:
a
n
+ 6a
n1
+ 9a
n2
= 0 se n 2; a
0
= 3, a
1
= 6
26. Uma sequencia a
n
e denida recursivamente:
a
0
= 1, a
1
= 3 e a
n
= 2a
n1
a
n2
para n 2
(a) Calcule alguns termos da sequencia e conjecture uma formula para a
n
como
uma funcao de n.
(b) Prove que a formula que voce encontrou esta correta. (Use inducao matematica.)
27. A sequencia a
n
e denida recursivamente:
a
n
= 2a
n1
a
n2
para n 2 e a
0
= 1, a
1
= 2
(a) Calcule alguns termos da sequencia e conjecture o termo geral para a
n
.
(b) Prove, por inducao matematica, que a formula para a
n
esta correta.
28. Encontre e resolva uma relacao de recorrencia para o n umero de sequencias binarias
de comprimento n em que cada subsequencia de 0
i=1
(i(n + 1) =
1
3
n(n + 1)(n + 2)).
(a) Escreva a proposicao para n=1.
(b) Prove que a proposicao se verica para n=1.
(c) Escreva a proposicao para n=k.
(d) Escreva a proposicao para n=k+1.
(e) Prove que se a proposicao se verica para n=k, entao ela deve se vericar
tambem para n=k+1. Comece provando como esta indicado abaixo.
Prova :
k+1
i=1
i(i + 1) = (propriedade recursiva de
)
Portanto (por hipotese)
Porque a proposicao e verdadeira para todo n 1 ?
134 CAP
ITULO 6. RECURS
AO
Captulo 7
Estruturas Algebricas
Nesta parte temos dois objetivos principais. O primeiro e identicar estruturas e proprieda-
des algebricas que aparecem com frequencia em computacao, e prove uma linguagem para
descrever essas estruturas para simplicar e nos ajudar a entender alguns dos sistemas com-
plexos envolvidos. O segundo objetivo e provar algumas propriedades gerais sobre as estruturas
algebricas, que serao muito uteis quando essas estruturas aparecerem em varios lugares.
O estudante deve ser capaz de usar a linguagem de estruturas e de identicar propriedades
algebricas particulares. Num nvel mais elevado, ele deve ser capaz de provar propriedades
sobre estruturas algebricas.
Neste captulo, introduziremos semigrupos, monoides, grupos, conjuntos parcialmente or-
denados, reticulados, algebras Booleanas e corpos nitos, com uma discussao das propriedades
elementares e uma indicacao de onde elas aparecem em computacao.
7.1
Algebras
Ja tivemos oportunidade de observar em outra parte que os sistemas matematicos pode-
riam ser distinguidos uns dos outros pelo estudo das operacoes que estao denidas sobre
eles.
Exemplo 101 A operacao de subtracao e denida sobre os inteiros e sobre os
n umeros naturais. Entretanto, a subtracao sbre os inteiros e uma funcao total,
enquanto a subtracao sobre os n umeros naturais nao e total, mas somente
parcial. Em outra palavras, a subtracao e fechada sobre os inteiros mas, nao
sobre os naturais.
Existem outras caractersticas estruturais atraves das quais poderamos mostrar que os
sistemas sao diferentes. Por exemplo, os n umeros naturais(N) sao bem-ordenados(isto
e, todo subconjunto de N tem um menor elemento), enquanto os n umeros reais e os
inteiros nao o sao.
135
136 CAP
EBRICAS
Nesta secao apresentaremos algumas propriedades algebricas das operacoes e descre-
veremos algumas das mais importantes algebras ou estruturas algebricas. Intuitiva-
mente, uma algebra consiste de um conjunto de objetos junto com uma ou mais operacoes
sobre esses objetos. A algebra pode ser caracteriada pelas propriedades das operacoes.
`
As
vezes estao envolvidas mais que uma operacao.
Operac oes e suas propriedades algebricas
Nestas notas de aula usamos muitas operacoes. Por exemplo, a multiplicacao e a adicao
sobre os inteiros, a uniao e a interseccao sobre conjuntos. Parte da denicao de cada
opera cao e uma declaracao do conjunto sobre o qual ela esta denida. Por convinencia
repetiremos as denic oes ja apresentadas em outras partes.
Denicao 26 (Operacao binaria) Uma operac~ao binaria sobre um conjunto S e uma
funcao de S S em S.
Denicao 27 (Operacao unaria) Uma operac~ ao unaria sobre um conjunto S e uma
funcao de S em S.
Em cada caso, a palavra sobre signica que o valor da funcao nao pode esta fora
do conjunto. Ou seja, o conjunto e fechado sob a operacao.
Exemplo 102 A funcao de adic~ ao e uma operacao binaria sobre o conjunto
dos inteiros, Z. Isto e, Z e fechado sobre a adicao.
A funcao
adicao : Z Z Z
adicao(x, y) = x +y
satisfaz a denicao para uma operacao binaria sobre Z.
Observacao 2 A disposicao x + y e denominada notacao infixa. +(x, y) e chamada
notacao prefixa e (x, y)+ e chamada notacao posfixa. Poderemos usar cada uma delas,
as quais representam a mesma coisa: a soma de x com y.
Exemplo 103 A multiplicacao e uma operacao binaria sobre M
nn
, o con-
junto das matrizes quadradas com n linhas e n colunas.
A multiplicacao e uma funcao dos pares ordenados das matrizes de tamanho
n n nas matrizes de tamanho n n.
mult(A, B) = AB
7.1.
ALGEBRAS 137
Escrevendo A, B lado a lado queremos signicar que A e B devem ser multiplicados
um com o outro nessa ordem. (Isto e chamado notacao por justaposic~ao.)
Exemplo 104 Com respeito ao conjunto uiversal U, o complemento e uma
operac ao unaria sobre (U), o conjunto potencia de U.
O complemento e denido por
complemento : conjunto potencia de U conjunto potencia de U
complemento(A) = A
= U A
Exemplo 105 A Concatenac~ao de cadeias(strings) e uma operacao sobre
A
em A
, com
concatenacao(, ) = seguido de
=
= a
1
a
2
...a
r
b
1
b
2
...b
s
Propriedades estruturais das operac oes binarias
Embora poderemos usar os mesmos nomes para operacoes sobre conjuntos diferentes, as
funcoes propriamente sao diferentes. A diferenca e uma consequencia imediata da mu-
danca no domnio. Pode acontecer que as propriedades estruturais sejam diferentes. Con-
sidere a multiplicac ao:
1. Para todos n umeros reais x, y:
xy = yx
2. Para algumas matrizes n n A, B:
AB ,= BA
Por exemplo,
_
1 2
1 2
_ _
1 1
2 2
_
,=
_
1 1
2 2
_ _
1 2
1 2
_
138 CAP
EBRICAS
Em (1), a ordem das variaveis x e y nao e importante. Em (2) a ordem das matrizes
e importante. Dizemos que a multiplicacao denida sobre os reais e comutativa, mas a
multiplicacao denida sobre as matrizes n n nao e comutativa.
A propriedade comutativa e uma propriedade algebrica que pode pertencer a uma
opera cao sobre um conjunto. Para generalizar a discussao e enfatizar as propriedades
estruturais em vez das propriedades especcas sobre uma opera cao particular, vamos
denotar uma operacao arbitraria sobre um conjunto S pelo smbolo 2
a
. (Portanto, 2
a
e
usado no lugar de qualquer um dos smbolos , +, , , , , concatenacao, ou qualquer
outra opera cao.) Entao, poderemos denir as seguintes propriedades estruturais.
Denicao 28 (Comutativa) Uma operacao binaria, 2, sobre S, diz-se comutativa se e
somente se
x2y = y2x, para todo x, y S
Exemplo 106 :
A operacao de concatenacao nao e comutativa sobre cadeias. Pois se = car e
= pete, entao concatenacao(, ) = carpete e concatenacao(, ) = petecar.
Denicao 29 (Associativa) Uma operacao binaria, 2, sobre S, diz-se associativa se
e somente se
x2(y2z) = (x2y)2z, para todo x, y, z S
Se soubermos que uma operacao binaria, 2, e associativa, entao nao existe ambi-
guidade em escrever uma expressao como x2y2z, pois nao existe problema se ela for
interpretada como x2(y2z) ou como (x2y)2z.
Exemplo 107 A operacao de composicao de funcoes, denotada por , e as-
sociativa sobre funcoes, desde que essa composicao esteja denida:
Sejam f, g, h funcoes para as quais f(g(h(x))) esta denida para no mnimo
um valor de x. Entao:
f (g h) = f g) h
O ponto e que a composicao de funcoes diz respeito a uma aplicacao de uma
funcao seguida de uma aplicacao de uma segunda funcao.
7.1.
ALGEBRAS 139
x
fg
//
g
x
h
??
~
~
~
~
~
~
~
~
gh
//
x
f
==
{
{
{
{
{
{
{
{
{
Figura 7.1: Associatividade da composic ao de func oes
Para mostra que a composicao de funcoes e associativa, considere um elemento
x para o qual h(x) = x
, g(x
) = x
, f(x
) = x
) = x
) = x
.
Alem disso, h(x) = x
e (f g) h(x) = (f g)(x
) = f(g(x
)) = f(x
) = x
.
Por conseguinte, para todos os x
s nessas condicoes:
f (g h)(x) = (f g) h(x)
Isto e, para domnios adequados:
f (g h) = (f g) h
O argumento e ilustrado usando um grafo dirigido da gura 7.1, no qual, por
exemplo, se f mapeia x em x
, entao x, x
) e rotulada por f.
Exemplo 108 : A mutiplicacao de matrizes e associativa.
A melhor maneira de mostrar que a multiplicacao de matrizes e associativa e
num curso de algebra linear, onde aprenderamos que matrizes correspondem
a certos tipos de funcoes(chamadas transformacoes lineares) e portanto, a
multiplicacao de matrizes e associativa pelo exemplo 108.
Exemplo 109 : A subtracao sobre o conjunto dos inteiros nao e associativa.
140 CAP
EBRICAS
O contraexemplo 5 - (3 - 2) = 4 e (5 - 3) - 2 = 0 mostra que nao e verdade
que
x (y z) = (x y) z para todo x, y, z Z
Portanto, a subtracao nao e associativa sobre os inteiros.
Denicao 30 (Idempotente) Uma operacao binaria, 2, sobre S, diz-se idempotente se
e somente se
x2x = x para todo x S
Exemplo 110 A intersecao sobre um dado conjunto universal, U, e idempo-
tente.
X X = X, para todo conjunto X U
Exemplo 111 : A multiplicacao sobre o conjunto dos inteiros nao e idempotente.
As unicas solucoes de x x = x sao x = 0 ou x = 1.
Para que a multiplicacao sobre n umeros fosse idempotente seria necessario
restringir o conjunto de n umeros a 0, 1.
Denicao 31 (Identidade) Uma identidade para uma operacao binaria, 2, sobre S, e
um elemento e, digamos, em S, para o qual
x2e = x = e2, x para todo x S.
Um elemento, e, e chamado uma identidade, para 2 em S. Uma propriedade de
uma identidade e que se ela existe ela e unica.
Teorema 8 Se existir uma identidade, e, para a operacao 2, sobre o conjunto s, entao
ela e unica.
Prova:
Sejam e e f identidades para 2. Entao:
e = e2f = f
Isto e, e = f. Portanto, existe no maximo uma identidade.
7.1.
ALGEBRAS 141
De agora em diante podemos falar de a identidade para 2, sobre S.
Exemplo 112 A identidade para a multiplicacao de matrizes, sobre M
22
e
I =
_
1 0
0 1
_
Pela denicao de multiplicacao de matrizes temos:
_
a b
c d
__
1 0
0 1
_
=
_
a b
c d
_
=
_
1 0
0 1
__
a b
c d
_
.
Exemplo 113 A identidade para a adicao sobre R e 0, pois:
x R x + 0 = x = 0 +x.
Exemplo 114 A identidade para a uniao(), sobre o conjunto potencia de
A, e o conjunto vazio, .
Temos que para todo subconjunto X de A(isto e, X (A)) :
X = X = X.
Exemplo 115 A identidade para a concatenacao e a cadeia vazia .
concatenacao(, ) = = concatenacao(, ).
Se o conceito de cadeia vazia nao fosse permitido, entao nao existiria identi-
dade para a concatenacao sobre cadeias.
Denicao 32 (Inversa) Seja e a identidade para 2, sobre S. O elemento x
1
e o
inverso de x com respeito a 2, sobre S, se e somente se
x2x
1
= e = x
1
2x
Observe que cada x tem seu proprio inverso. Se 2 representa um tipo aditivo de
operacao e comum denotar a inversa de x por (x).
142 CAP
EBRICAS
Teorema 9 Suponha que a operacao binaria, 2, sobre S, e associativa e que o elemento
identidade, e, existe. Se a e o inverso de x com respeito a 2, entao a inversa a e
unica(para cada x).
Prova:
Suponha que a e b sao ambos inversos de x, com respeito a 2, sobre S. Seja
e o elemento identidade para 2, sobre S. Entao:
a = a2e pois e e o elemento identidade
= a2(x2b) pois b e um inverso para x
= (a2x)2b pois 2e associativa
= e2b pois a e um inverso para x
= b pois ee a identidade
Portanto, existe no maxim um inverso de x, com respeito a 2, sobre S.
Teorema 10 Seja a um inverso de x, com respeito a operacao 2, sobre o conjunto S.
Entao, x e o inverso de a. Isto e, (x
1
)
1
= x.
Prova: Seja e a identidade para a operacao binaria 2, sobre S e a o inverso de x,
com respeito a 2.
Entao, x2a = e = a2x (denicao 32)
Mas a igualdade e simetrica.
Portanto, a2x = e = x2a
Portanto, pela denicao 32, x e o inverso de a.
Exemplo 116 Nao existe inverso de 0, com respeito a multiplicacao(), so-
bre os n umeros reais.
A identidade para a multiplicacao e 1. Mas, a equacao 0 x = 1 nao tem so-
lucao para x e portanto, nao existe inverso de 0, com respeito a multiplicacao.
Exemplo 117 Para cada elemento a (R 0) existe uma inversa de a,
com respeito a multiplicacao. A identidade para a multiplicao e 1. Para o
n umero real nao nulo, a, existe um n umero real
1
a
tal que
a
1
a
= 1 =
1
a
a
e portanto,
1
a
e o inverso de a, para cada a (R 0).
7.1.
ALGEBRAS 143
Exemplo 118 Existe um inverso para cada n umero real, com respeito a adicao,
sobre os n umeros reais.
A identidade para a adicao e 0 e para cada n umero real a existe um n umero
real (a) tal que
a + (a) = 0 = (a) +a.
Portanto, (a) e o inverso de a, com respeito adicao, para cada n umero real
a.
Exemplo 119 Nao existe inverso de uma cadeia nao vazia, com respeito a
concatenacao.
A identidade e , a cadeia vazia. Considere uma cadeia = a
1
a
2
,=
concatenacao(a
1
a
2
, x) = a
1
a
2
x
e a
1
a
2
x nao pode ser a cadeia vazia para qualquer escolha de x, pois a
1
a
2
e
nao vazia. Portanto, nao existe inverso de qualquer cadeia nao vazia, com
respeito a concatenacao.
Onde duas operacoes binarias forem denidas, sobre um conjunto S, pode existir uma
propriedade estrutural envolvendo ambas as operacoes.
Denicao 33 (Distributiva) A operacao 2 diz-se distributiva, com respeito a ope-
racao , sobre o conjunto S, se e somente se
x2(y z) = (x2y) (x2z)
Para todo x, y, z S.
Exemplo 120 A multiplicacao e distributiva, com respeito a adicao, sobre o
conjunto dos n umeros reais.
x, y, z R, x(y +z) = xy +xz.
Exemplo 121 A adiacao nao e distributiva, com relacao a multiplica cao,
sobre os n umeros reais.
Contraexemplo: 2 + (34) = 14, mas (2 + 3)(2 + 4) = 30.
144 CAP
EBRICAS
Exemplo 122 A intersecao e distributiva, com relacao a uniao, sobre o con-
junto potencia de A.
Para todo X, Y, Z (A)
X (Y Z) = (X Y ) (X Z)
Exemplo 123 A uniao e distributiva, com respeito a intersecao, sobre o con-
junto potencia de A.
Para todo X, Y, Z (A)
X (Y Z) = (X Y ) (X Z)
Propriedades generalizadas
As propriedades associativa e distributiva podem ser generalizadas de modo que possam
ser aplicadas a mais de tres elementos.
Propriedade distributiva generalizada
Suponha que a operacao 2 e distributiva, com relacao a operacao , sobre S.
Entao, a propriedade distributiva generalizada, abaixo, tambem e verdadeira.
x2(y
1
... y
n
) = (x2y
1
) ... (x2y
n
)
Para todo x, y
1
, ..., y
n
S.
A prova e por inducao sobre n.
Propriedade associativa generalizada
Suponha que a operacao 2, sobre S, e associativa. Entao, para cada sequencia
x
1
, x
2
, ..., x
n
S, (n 3), com qualquer disposicao de parenteses(satisfazendo
corretamente a regra de parenteses) tem o mesmo valor que a seguinte ex-
pressao:
x
1
2x
2
...2x
n
.
A prova e por inducao sobre n.
7.1.
ALGEBRAS 145
Agora que denimos as propriedades estruturais basicas das opracoes sobre um con-
junto, e provamos alguns resultados associados, e o momento de denir uma algebra
formalmente.
Denicao 34 Uma algebra e um conjunto de objetos S, uma ou mais operacoes (2, , ...),
sobre S, satisfazendo algumas propriedades estruturais com relacao a essas operacoes.
Uma notacao para uma algebra e (S, 2, , ...). As possveis propriedades estruturais
sao dadas nas denic oes 28- 33.
EBRICAS
1. A concatenacao e associativa. Portanto, a algebra e um semigrupo.
2. A
EBRICAS
Exemplo 129 Dada a tabela para a operacao ,
a b
a a b
b b a
(a, b, ) e um grupo.
A operacao e fechada sobre o conjunto.
A operacao e associativa. Por exemplo:
a (a b) = a b = b e (a a) b = a b = b
Portanto, a (a b) = (a a) b.
Oito provas dessa natureza, cobrindo todas as sequencia de a
s e b
s, sao ne-
cessarias e sucientes para estabelecer a associatividade do grupo.
A identidade e a.
Cada elemento no conjunto tem um inverso, a
1
= a, b
1
= b.
Como na arimetica usual, as aplicacoes repetidas de uma operacao, p, podem ser
representadas convenientemente pela notacao p
m
, onde p pertence a um grupo (G, 2) e
m e um inteiro nao negativo.
Denicao 38 (Exponenciacao) Para p (G, 2), um grupo com identidade e, e um
inteiro m 0:
p
m
=
_
e se m = 0
p
m1
2p se m 0
Se 2 e um operador do tipo aditivo , entao, usualmente, escrevemos mp, em vez de
p
m
.
Exemplo 130 p
3
= p
2
2p = p2p2p.
Os parenteses podem ser omitidos uma vez que 2 e associativa.
Exemplo 131 p
1
= e2p = p.
7.1.
ALGEBRAS 149
Denicao 39 (Exponenciacao nao negativa) Para p (G, 2) um grupo, com m < 0
inteiro:
p
m
= (p
m
)
1
O valor de p
m
e dado pela denicao 38. A notac ao ( )
1
indica a inversa do
elemento em parenteses, com respeito `a operacao 2, sobre G.
Teorema 11 Se p for um elemento do grupo (G, 2) e m, n sao inteiros entao:
1. (p
m
)
1
= (p
1
)
m
2. p
m
2p
n
= p
m+n
3. (p
m
)
n
= p
mn
Prova: Cada parte deste teorema pode ser provada pela propriedade associtiva(generalizada)
de 2 e as denicoes 38, 39 e o teorema 10.
Os resultados desse teorema podem ser facilmente lembrados pois eles sao identicos
em aparencia aos resultados para a exponenciacao sobre os n umeros reais.
Teorema 12 Para p no grupo (G, 2):
p
m
2p
n
= p
n
2p
m
, para todo m, n Z.
Prova: Do teorema 11, segunda parte, e a propriedade comutativa da adicao, sobre
Z:
p
m
2p
n
= p
m+n
= p
n+m
= p
n
2p
m
Para todos os inteiros m, n.
Teorema 13 Seja p um elemento de um grupo nito (G, 2) e n o n umero de elementos
de G, com n > 1. Entao, existe um s > 0 tal que p
s
= e, com e a identidade para 2,
sobre S e s n.
Prova:
150 CAP
EBRICAS
A sequencia p, p
2
, ..., p
n
contem n + 1 elementos cada um dos quais esta em
G(pela propriedade de fechamento).
G tem n elementos, portanto(pela princpio da casa de pombos) dois dos ele-
mentos na sequencia devem ser o mesmo.
Suponha p = p
b
, com 0 < a < b.
Seja s = b a (a > 0).
Portanto, p
s
p
ba
= p
b
2p
a
teorema 11, parte 2
= p
b
2(p
a
)
1
denicao 39
= p
b
2(p
b
)
1
argumento acima
= e denicao 32
Alem disso, 0 < a < b n + 1, portanto s = b a n e o teorema esta
provado.
Observacao 3 : Se n = 1 no teorema acima, entao s = 0, mas o resultado nao e
interessante.
Teorema 14 (Grupo cclico) Seja p um elemento de grupo (S, 2), com no mnimo dois
elementos, e suponha que s e o menor inteiro positivo tal que p
s
= e, onde e e a identidade
para 2, sobre S. Entao,
C = e, p, p
2
, ..., p
s1
EBRICAS
7.2 Estruturas ordenadas
Anteriormente, denimos propriedades de operacoes(comutatividade, associatividade, e
assim por diante) e identicamos diferentes algebras(semigrupos, monoides e grupos) pelas
propriedades das operac oes denidas sobre elas.
Nesta secao analisaremos as estruturas nas quais e importante uma relacao de ordem
parcial.
Conjuntos parcialmente ordenados e reticulados
Em outra parte destas notas, denimos uma relacao de ordem parcial como sendo uma
relacao reexiva, antisimetrica e transitiva. Um conjunto sobre o qual esta denida uma
relacao de ordem parcial e chamado um conjunto parcialmente ordenado. (Alguns
autores contraem esse nome para poset, as iniciais em ingles, partially ordered set.
Para simplicar, usaremos sempre essa abreviacao).
Denicao 41 (Poset) Um conjunto parcialmente ordenado(poset), (S, ), e um con-
junto S no qual esta denida uma ordem parcial, .
A notacao (S, ) pretende diferenciar um poset de uma algebra. A letra grega e usada
para indicar uma relacao de ordem parcial e nao deve ser confundida com um smbolo de
operacao. Alguns autores usam o smbolo _ no lugar de .
Exemplo 135 Seja S = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 e a relacao divide, que
signica divide exatamente sem nenhum resto. Por exemplo, 22, 20, 26,
mas nao 42 e tambem nao 57.
A relacao divide e uma relacao de ordem parcial porque:
1. aa para todo a S;
2. se ab e ba, entao a = b;
3. se ab e bc, entao ac;
Divide nao e uma relacao de ordem total sobre esse conjunto porque, por exem-
plo, nem 57 e nem 75.
Exemplo 136 Seja S = 1, 2, 3, 5, 6, 10, 15, 30, e a relacao divide sobre
S. A relacao nao e uma ordem total sobre S porque, por exemplo, nem 23
nem 32.
Exemplo 137 Seja S = o conjunto potencia dea, b, c, e = e um subconjunto de
e ( e a relacao ).
A relacao e uma ordem parcial porque:
7.2. ESTRUTURAS ORDENADAS 153
1. A A, para todo A em S;
2. se A B e B A, entao A = B em S.
3. se A B e B C, entao A C em S.
Mas, nao e uma ordem total porque, por exemplo,
a, b a, c e a, c a, b
Como observamos, em nenhum dos exemplos acima a relacao e uma ordem total.
Entretanto, cada ordem parcial contem algumas sequencias que sao totalmente ordenadas.
Por exemplo, as sequencias 1,2,4,8 e 1,2,10, no exemplo 135 sao totalmente ordenadas.
Nessas sequencias, escolhendo dois elementos da mesma sequencia, um elemento divide
o outro. Se os elementos sao o mesmo, sabemos que um n umero divide a si proprio. Se
eles sao diferentes, aquele da esquerda divide o da direita.
No exemplo 136: 1,2,6,30 e 1,2,10,30 sao sequencias totalmente ordenadas.
No exemplo 137: , a, a, b, a, b, c e , a, a, c, a, b, c sao sequencias total-
mente ordenadas.
As sequencias podem ser ilustradas pelo diagrama de Hasse (cujo denominacao e uma
homenagem ao matematico alemao Helmut Hasse (1898-1979). O diagrama de Hasse, pa-
ra um conjunto parcialmente ordenado, (S, ), e um grafo no qual os vertices representam
os elementos de S e dois vertices a, b sao ligados por uma aresta se ab, exceto que:
1. como sabemos que e reexiva nao e considerado necessario o laco correspondente
a aa, e
2. como sabemos que e transitiva nao e considerado necessario desenhar a aresta
para ac se ab e bc estiverem includos.
Tradicionalmente os grafos eram desenhados sem setas e com o menor elemento na
parte mais baixa(bottom). Aqui, ( 7.2) ele foi desenhado com o menor elemento na
esquerda e crescendo para `a direita.
No exemplo 135, 1 divide 2, 2 divide 4, 4 divide 8, portanto, 1,2,4,8, pode ser visto co-
mo uma sequencia crescente, com respeito a relacao divide. O correspondente caminho
no diagrama de Hasse( 7.2) vai(mais ou menos) da esquerda para `a direita.
154 CAP
EBRICAS
7 4
~
~
~
~
~
~
~
~
8
2
6
~
~
~
~
~
~
~
~
1
a
a
a
a
a
a
a
3 9
~
~
~
~
~
~
~
~
5 10
Figura 7.2: Diagrama de Hasse para o exemplo 135
2
d
d
d
d
d
d
d
d
10
f
f
f
f
f
f
f
f
1
a
a
a
a
a
a
a
5
~
~
~
~
~
~
~
~
d
d
d
d
d
d
d
d
6
~
~
~
~
~
~
~
~
30
|
|
|
|
|
|
|
|
3 15
Figura 7.3: 136
7.2. ESTRUTURAS ORDENADAS 155
Denicao 42 (
EBRICAS
Suponha que x, y S sao supremos de a, b.
Pela denicao 43 e um argumento similar ao do teorema 15,
xy e yx
Pela antisimetria, x = y.
Ambos, o supremo e o nmo mapeiam pares de elementos em S num unico elemento
de S. Se o supremo e o nmo estivessem denidos para todos os pares de elementos em
S, eles poderiam ser vistos como operacoes binarias, sobre S. Neste caso, vamos ter um
smbolo de operador inxo para cada um deles.
Notacao, se sup e nf sao operacoes binarias sobre S, entao:
sup(a, b) = a . b
inf(a, b) = a b
A estrutura para a qual todo par de elementos tem um supremo e umnmo e chamado
um reticulado.
Denicao 44 (Reticulado) Um reticulado e um poset, (L, ),, no qual todo par de ele-
mentos, em L, tem um supremo e um nmo.
Um reticulado (L, ) tem duas operacoes binarias denidas sobre ele, e portanto, po-
demos construir a partir dele a algebra (L, ., ).
Exemplo 141 1. O poset do exemplo 135 nao e um reticulado porque
nem todo par de elementos tem um supremo e um nmo. (Por exemplo,
sup(6, 10) nao esta denido sobre o conjunto.)
2. O poset do exemplo 136 com a relacao de ordem paracial divide() e
um reticulado. As operacoes binarias sao o maximo divisor comum()
e mnimo m ultiplo comum().
3. O poset do exemplo 137 com a relacao e um subconjunto de() e um
reticulado. As operacoes binarias sao intersecao() e a uniao().
O poset do exemplo 135, (S, ), como observamos acima, nao e um reticulado. Vimos
que o par (6, 10) nao tinha supremos em S. Poderamos aumentar S incluindo 30, mas,
entao teramos de incluir outros elementos. Se S fosse aumentado ate o conjunto dos
inteiros, Z, entao a estrutura seria um reticulado. Cada par de inteiros tem um supremo
e um nmo em Z, e portanto (S, ) seria um reticulado. Mas, o conjunto dos inteiros e
ilimitido superiormente e inferiormente e, desse modo nao existe o maior elemento nem
o menor elemento.
7.2. ESTRUTURAS ORDENADAS 157
Denicao 45 (Menor elemento(bottom), maior elemento(topo)) Seja (S, ) um poset.
O elemento m S e chamado o maior elemento ou topo ou maximo se para todo a S,
am. O elemento b S e chamado o mmimo ou bottom ou o menor elemento se para
todo a S, ba.
No exemplo 135, o menor elemento e 1, mais nao existe topo.
No exemplo 136, o topo e 30 e o mnimo e 1.
No exemplo 137, o topo e a, b, c e o bottom .
Algebras booleanas
A seguir consideraremos uma estrutura, chamada algebra booleana em homenagem a Geor-
ge Boole. Boole publicou An Investigation of the Laws of Thought
1
, em 1854, no qual ele
estabeleceu uma algebra da logica deste tipo. As algebras booleanas sao usadas no proces-
samento de informac oes e na teoria do chaveamente(ou circuitos digitais.)
Uma algebra booleana(tambem chamaremos algebra de boole) nao precisa que nela
esteja denida uma relacao de ordem. Incluimo-la, aqui, apos reticulado, devido a sua
associacao com esta estrutura.
Denicao 46 (
EBRICAS
Exemplo 143 (conjunto potencia deA, , , complemento sobre conjuntos, , A),
e uma algebra booleana.
A estrutura no exemplo 137 e uma algebra booleana desse tipo com A =
a, b.c.
Exemplo 144 (S, +, ., , 1, 30), onde S = 1, 2, 3, 5, 6, 10, 15, 30, a + b de-
nota o mnimo m ultiplo comum de a e b, a.b denota o maximo divisor de
a e b, e x denota o n umero
30
x
, e uma algebra booleana.
O teorema seguinte fornece as propriedade gerais que devem vericar em toda algebra
booleana. Elas podem ser provadas usando a denicao 46.
Teorema 17 (Complemento) Para todo x em (B, +, ., , 0, 1), uma algebra booleana
x = x
Teorema 18 (Absorcao) Para todo x, y em (B, +, ., , 0, 1), um algebra booleana
x.(x +y) = x, x + (x.y) = x
Teorema 19 (De Morgan) Para todo x, y em (B, +, ., , 0, 1), uma algebra booleana
(x +y) = x +y, (x.y) = x.y
),
pode ser denida, sobre L, de tal modo que para cada elemento a L existe um elemento
a
em L, tal que
7.2. ESTRUTURAS ORDENADAS 159
a a
= 0 a . a
= 1
(isto e, inf(a, a
) = 0 e sup(a, a
e antisimetrica.
3. Se a.b = a e b.c = b
a.(b.c) = a.b (substituinddo b.c por b)
entao (a.b).c = a.b (associativa)
a.c = a (substituindo a.b por a)
Portanto, pela denicao, se a _ b e b _ c, entao a _ c e _ e transitiva.
A denicao acima de _ induziu uma ordem parcial sobre S.
Para provar que (S, _) e um reticulado e necessario mostrar que para todo a, b S,
ambos o sup(a, b) e inf(a, b) existem. O proximo teorema assegura que eles, de fato,
existem, provendo uma expressao para cada.
Teorema 20 (inf, sup) Seja (S, _) um poset induzido sobre a algebra booleana (S, +, ., , 0, 1)
pela rela cao _, denida por a _ b se e somente se a.b = a.
Entao a, b S, inf e sup existem, denidos por
160 CAP
EBRICAS
1. inf(a, b) = a.b
2. sup(a, b) = a +b
e (S, _) e um reticulado.
Prova:
1. (inf ) Pelas propriedades associativa, comutativa e idempotente de .
(a.b).a = a(b.a) = a.(a.b) = (a.a).b = (a.b)
e
(a.b).b = a(b.b) = (a.b)
Por denicao de _
(a.b) _ a (a.b) _ b
Portanto, a primeira parte da denicao 42 esta satisfeita.
Agora, suponha que x _ a e x _ b.
Pela denicao de _, x.a = x e x.b = x e, portanto, x.a = x.b.
Precisamos mostrar que x _ a.b.
Agora, x.(a.b) = (x.a).b = (x.b).b = x.(b.b) = x.b = x
e, assim, x _ a.b.
Logo, a segunda parte da denicao 42 esta satisfeita, e
a.b = inf(a, b)
2. (sup) Esta parte e similar a parte 1, usando +, em lugar de ., a denicao
43, em lugar da denicao 42.
Teorema 21 O reticulado (S, _) tem como menor elemento 0, e como maior elemento
1.
Prova:
7.3. CORPOS FINITOS 161
1. O menor elemento e 0.
Pela propriedade do complemento e pelas propriedades comutativa, asso-
ciativa e idenpotente de ., para todo a S,
0.a = (a.a).a = a.(a.a) = (a.a).a = a.a = 0
Portanto, por denicao, 0 _ a a S, e 0 e o menor elemento.
2. O maior elemento e 1. Analogo ao item 1.
As duas outras proposicoes acerca de (S, _) pode ser provada, mas e deixada
como exerccios.
1. (S, _) e um reticulado distributivo.
2. (S, _) e um reticulado com complemento.
7.3 Corpos nitos
Um corpo e uma algebra na qual as quatro operacoes binarias, adicao, subtracao, multi-
plicacao e divisao estao denidas sobre o conjunto. Uma outra maneira de descrever a
estrutura de corpo e deni-la como um grupo (S, +), junto com o grupo (S, ), onde a
operacao binaria e distributiva em relacao a +.
Denicao 47 (Corpo) Se (S, +) e um grupo, (S 0, ) e grupo e e distributiva,
com rela cao a +, entao a algebra (S, +, ) e chamada um corpo.
Os exemplos obvios de corpos sao os sistemas de n umeros reais, R e de n umeros ra-
cionais, Q.
2
Sabemos que R e Q tem, denidas sobre eles, a relacao de ordem (total),
mas nao existe nada na denicao de um corpo que de origem a essa propriedade. Devem
ser impostas algumas propriedades adicionais, sobre um corpo, para que ele venha a ter
uma rela cao de ordem. A seguir apresentaremos a maneira de fazer isso.
Denicao 48 (Corpo ordenado) Um corpo, com conjunto base F, diz-se ordenado se ele
contem um subconjunto nao vazio, P(os positivos) que e fechado com respeito as operacoes
de adicao e multiplicacao do corpo e P, 0, F P e uma particao de F na qual cada
celula e nao vazia.
A relacao de ordem parcial e entao denida por
x, y F, x y se e somente se y x P 0
2
Mas,n ao Z, pois (Z 0, ) nao e um grupo.
162 CAP
EBRICAS
Embora seja possvel derivar todas as proprieda mais usuais da relacao de ordem ,
a partir da denicao, isso nao nos mostraria nada de novo. O proposito aqui e meramente
mostrar que um corpo nao e necessariamente ordenado. A seguir sao exemplos de corpos
nitos, nenhum dos quais e ordenado.
Exemplo 145 Seja S = 0, 1. Dena a adicao e a multiplicacao pelas
tabelas:
+ 0 1
0 0 1
1 1 0
0 1
0 0 0
1 0 1
Entao, (S, +, ) e um corpo.
Exemplo 146 Seja S = 0, 1, 2. Dena a adicao e a multiplicacao pelas
tabelas:
+ 0 1 2
0 0 1 2
1 1 2 0
2 2 0 1
0 1 2
0 0 0 0
1 0 1 2
2 0 2 1
Entao, (S, +, ) e um corpo.
O corpo no exemplo 146 nao e ordenado. Observe que 1+2 = 0, e portanto, o inverso
de 1, com respeito a adicao, e 2, isto e, (-1) = 2. Devemos tentar enquadrar a denicao
de um corpo ordenado denindo P = 1. Entao, 1, 0 e 2 e uma particao de S.
Mas, P nao e fechado sob a adicao, pelo exemplo 1 + 1 = 2.
Exemplo 147 O conjunto dos resduos concruentes modulo m, com m pri-
mo, com a adicao e a multiplicao modulo m, e um corpo.
7.4 EXERC
ICIOS
1. Mostre que a divisao sobre o conjunto dos n umeros reais nao e associativa.
2. Dar um exemplo para a assertiva a concatenac ao e associativa sobre A
.
3. Que signica a assertiva A intersecao e idempotente sobre o conjunto das potencias
de A?
7.4. EXERC
ICIOS 163
4. Seja L = 1, 3, 5, 7, 15, 21, 35, 105 e a relacao divide sobre L. Entao, (L, ) e
um poset. Desenhe o diagrama de Hasse para (L, ). Encontre sup(3, 7), sup(15, 21)
e o inf(7, 21). Encontre o bottom e o topo do conjunto. Encontre uma operacao
complemento para o reticulado.
5. Seja B = t, f.
Considere a algebra (B, , ).
(a) Estabeleca em smbolos o que signica cada um dos seguintes:
(i) e comutativa.
(ii) e associativa.
(iii) e distributiva dobre .
(b) tem uma identidade? Se for o caso, qual?
(c) tem uma identidade? Se for o caso qual?
(d) De uma razao porque (B, ) nao e um grupo.
6. A adicao sobre M
22
, o conjunto das matrizes 2 por 2 com entras reais, e denida
por
_
a
11
a
12
a
21
a
22
_
+
_
b
11
b
12
b
21
b
22
_
=
_
a
11
+b
11
a
12
+b
12
a
21
+b
21
a
22
+b
22
_
Considere a algebra (M
22
, +).
(a) qual e identidade para a adicao?
(b) Cada matriz em (M
22
, +) tem uma inversa?
(c) A adicao e comutativa?
(d) A adicao e associativa?
(e) A adicao e idempotente?
(f) (M
22
, +) e um semigrupo? um monoide? um grupo? um grupo Abeliano?
7. Quais propriedades estruturais se vericam para a operacao conc vista como uma
operac ao sobre listas?
8. Aqui esta uma tabela de multiplicacao para a algebra (A, ), com A = a, b, c.
164 CAP
EBRICAS
a b c
a a a b
b a b c
c b c b
(a) * e um isomorsmo?
(b) * e associativa?
(c) * e idempotente?
(d) * tem identidade?
(e) Cada x A tem um unico inverso?
9. Suponha que a operacao 2, sobre S, e associativa e seja a, b, c, d, e S. Escreva
todas as expressoes com cinco termos iguais a
(a2(b2(c2(d2e)))).
10. Use o fato de que a operacao sobre os n umeros reais e associativa para provar que
para a, b, c, d, e, f R
(a b) ((c d) (e f)) = a (b (c (d (e f))))
11. Prove que um grupo clico e abeliano.
12. Na prova do teorema 11, parte 1, devemos mostrar que
p
m
2(p
1
)
m
= e = (p
1
)
m
2p
m
Pode ser construda uma prova assumindo que m 0, para o caso 1 e m < 0, para
o caso 2. O caso e feito usando a propriedade associativa generalizada. Uma prova
do caso 2 usa a denicao 29, o teorema 10 e a denicao 32. Faca a prova do
caso 2.
13. Dado o conjunto A, ((A), ) e um reticulado. Qual e o signicado da assertiva:
, sobre (A) e associativa? A assertiva e verdadeira?
14. Seja (L, ) um reticulado. Prove:
7.4. EXERC
ICIOS 165
(a) sup(.), sobre L, e comutativa.
(b) inf(), sobre L, e idempotente.
15. Seja S o conjunto 1, 2, 3, 5, 6, 10, 15, 30. Suponha que a + b denota o mnimo
m ultiplo comum de a, b, a.b denota o maximo divisor comum de a, b e x denota o
n umero
30
x
. Entao, (S, +, ., , 1, 30) e uma algebra booleana.
Prove o seguinte:
(a) A identidade para + e 1.
(b) a identidade para . e 30.
(c) A opracao mais + e idempotente.
(d) x S x +x = 30.
(e) x.x = 1.
16. Prove que para todo x numa algebra booleana (B, +, ., , 0, 1)
(a) x.0 = 0 (b) x + 1 = 1
17. O teorema 18(Absorcao) estabelece:
Para todos x, y, z numa algebra booleana (B, +, ., , 0, 1)
(a) x.(x +y) = x, (b)x + (x.y) = x
Prove a parte (a).
18. O teorema 19(De Morgan) estabelece que:
Para todos x, y, z numa algebra booleana (B, +, ., , 0, 1)
(a) (x.y) = x +y, (b) (x +y) = x +y
Prove a parte (a).
19. Seja (S, +, ., , 0, 1) uma algebra booleana.
Dena a relacao _, sobre S, por
a _ b se e somente se a +b = a
Prove que a relacao assim denida induz uma ordem parcial sobre S.
166 CAP
EBRICAS
20. Seja (S, _) o reticulado induzido sobre a algebra booleana (S, +, ., , 0, 1) pela re-
lacao _ denida por
a _ b se e somente se a.b = a
Prove:
(a) sup(a, b) = a +b, a, b S
(b) 1 e o topo de (S, _).
Captulo 8
Grafos e arvores
8.1 Introducao
Muitas das estruturas, em computacao, podem ser modeladas por grafos. Por isso, neste
captulo, introduziremos a linguagem dos grafos e analizaremos o problema da construcao
de uma arvore geradora para um grafo conexo. Para resolver muitos dos problemas em
grafos e preciso selecionar um algoritmo de arvore geradora. Mostraremos que a relacao
conectado e uma relac ao de equivalencia no conjunto dos vertices de um grafo.
Um tema importante neste captulo diz respeito a relacao entre guras(geometricas)
e as estruturas algebricas, muito complexas para serem desenhadas de forma util. As -
guras sao importantes para suscitar novas ideias e possibilitar o entendimento das ideias
dos outros. Mas para serem efetivas, as guras precisam ser traduzidas em estruturas
algebricas, de modo que os grandes problemas possam ser manipulados pelos computado-
res. Os matematicos dao ao nome grafo um signicado especial. Esta palavra descreve
um conjunto de vertices (ou nos), alguns ou todas dos quais podem ser conectados por
arestas(ou arcos). Os grafos sao usados para modelar muitas situacoes, como, por exem-
plo, redes de estradas, redes de computadores, horarios de trabalho, estruturas de dados e
muitas outras.
8.2 Grafos
Um grafo e uma estrutura discreta que consiste de um conjunto de vertices em que alguns
deles ou todos podem ser ligados por arestas. A gura 8.1 apresenta um grafo no qual
os vertices(tambem chamados nos) sao rotulados com v
1
, v
2
, v
3
, v
4
e as arestas(tambem
chamadas de arcos) a, b, c, d, e. Um vetice e representado pictoricamente por um pequeno
crculo, , e as arestas por uma linha ou uma curva lingando-os.
167
168 CAP
ITULO 8. GRAFOS E
ARVORES
Figura 8.1: Um grafo
A aresta a diz-se incidente com o vetice v
1
e com o vertice v
2
. Os vertices v
1
e v
2
sao ditos adjacentes porque eles estao ligados por uma aresta. As arestas c e d sao ditas
arestas m ultiplas porque elas sao incidentes com os mesmos pares de vertices v
3
, v
2
. A
aresta a e chamada um laco porque ela e incidente com exatamente um vertice. Um grafo
que nao possui arestas m ultiplas ou lacos e chamado um grafo simples. Se for permitidas
arestas m ultiplas o grafo sera chamado multigrafo. Um pseudografo e um grafo onde sao
permitidos lacos e arestas m ultiplas. Chamaremos grafo geral aquele onde sao permitidos
todas as posssibilidades. Autores diferentes, em geral, usam nomes diferentes para esses
grafos.
Denicao 49 (Grafo) Um grafo, G, e um conjunto, V (G), de objetos, chamados
vertices, junto com um multiconjunto,
1
E(G), de arestas. Cada elemento de E e um
multiconjunto de dois vertices de V . Se V = o grafo sera chamado grafo nulo.
Um grafo G(V, E, i) pode ser classicado usando a funcao de incidencia
i : E u, v[u, v V
onde:
1. Se i for injetiva e u ,= v, entao G e um grafo simples. Neste caso, cada aresta
e identicada, sem ambiguidade, pelos vertices com os quais ela e incidente(neste
caso os multiconjuntos sao conjuntos);
2. Se i for muitos-um(nao injetiva) e u ,= v, entao G e um multigrafo. Neste caso,
sao possveis arestas m ultiplas;
3. Se i for muitos-um, com nenhuma exigencia de que u e v sejam distintos, entao G
e chamado um pseudografo ou um grafo geral. As arestas m ultiplas e os lacos sao
permitidos.
1
Um multiconjunto e uma extensao do conceito de conjunto, onde se permite que um elemento se
repita varias vezes, por exemplo, 2, 2, 3, 1 e um multiconjunto.
8.2. GRAFOS 169
Figura 8.2: Grafo para o exemplo 1
Exemplo 148 Suponha que V (G) = v
1
, v
2
, v
3
, E(G) = e
1
, e
2
e
i(e
1
) v
2
, v
1
, i(e
2
) v
1
, v
3
Entao, G(V, E, i) e um grafo simples com tres vertices e duas arestas. Po-
demos desenhar a gura 8.2 para representar esse grafo. Os vertices v
1
e
v
2
sao adjacentes, mas v
2
e v
3
nao sao. A aresta e
1
e incidente com v
2
e
v
3
. Como o grafo e um grafo simples, as arestas podem ser descritas como
2 subconjuntos de vertices sem ambiguidades. Por exemplo, e
1
= v
2
, v
1
.
As arestas sao desenhadas como segmentos de reta. Entretanto, as arestas
podem ser desenhadas como linhas curvas, por quem assim o desejar.
Denicao 50 (Digrafo) Se a funcao de inciencia mapeia em pares ordenados de vertices,
o grafo diz-se um grafo dirigido ou digrafo. Nesse caso, e comum colocar setas em vez de
arestas no desenho do grafo, para indicar o sentido.
Denicao 51 (Subgrafo) Um subgrafo de um grafo e um grafo cujos vertices formam
um subconjunto, S, de V (G) e cujas arestas contem somente vertices de S, que, por sua
vez, e um subconjunto de E(G).
`
As vezes, e util colocar n umeros nas arestas de um grafo. Por exemplo, o n umero
pode representar a distancia ou capacidade de uxo. Grafos como esses sao chamados
com peso ou com arestas rotuladas.
`
As vezes, esses gracos sao chamados redes.
Denicao 52 (Rotulo de aresta) Um rotulador de arestas de um grafo e uma funcao
rotuloDeAr : E(G) W
onde W e um conjunto de rotulos, comumente n umeros representando distancias ou
uxos.
Exemplo 149 O grafo na gura 8.3 tem um rotulo colocado em cada aresta.
170 CAP
ITULO 8. GRAFOS E
ARVORES
Figura 8.3: um grafo rotulado
Denicao 53 (Rotulo de vertices) Um rotulo de vertice de um grafo e uma funcao
rotV ert : V (G) W
onde W e um conjunto de rotulos para os vertices.
Denicao 54 (Grau de um vertice) O grau de um vertice e o n umero de arestas inci-
dentes com o vertice, sendo que cada laco conta duas vezes.
Proposicao 11 Seja G um grafo com p vertices e q arestas. Seja o vertice v
i
com grau
g
i
, para i = 1, 2, 3, ..., p. Entao,
p
i=1
d
i
= 2q
Prova: Tomando a soma dos graus dos vertices, cada laco contando duas vezes, por
denicao, e toda outra aresta e contada duas vezes, uma vez so para cada vertice que ela
contem. Portanto, a soma dos graus dos vertices de um grafo e duas vezes o n umero de
arestas.
Corolario 1 O n umero de vertices de grau mpar e par.
Matrizes e multiplicacao de matrizes
Para aqueles nao familiares com o assunto desta secao daremos uma descricao rapida
de matrizes. As secoes seguintes exigem conhecimento de matrizes e multiplicacao de
matrizes.
Denicao 55 Uma matriz A, mk, e um vetor retangular de elementos tendo m linhas
e k colunas, como mostramos abaixo.
8.2. GRAFOS 171
A =
_
_
_
_
a
11
a
12
... a
1k
a
21
a
22
... a
2k
... ... a
ij
...
a
m1
a
m2
... a
mk
_
_
_
_
Os elementos na i esima linha e j-esima coluna e a
ij
.
Um exemplo de uma matriz 3 4 e:
A =
_
_
1 2 0 1
0 3 4 2
2 2 2 3
_
_
O elemento a
23
e 4.
um exemplo de uma matriz 3 3 e:
A =
_
_
1 2 0
2 4 0
2 2 2
_
_
Denicao 56 (Multiplicacao de matrizes) Se uma matriz A e mk e outra B e k n,
entao o produto existe e e denido por uma matriz na qual o elemento na i-esima linha
e j-esima coluna e:
a
i1
b
1j
+a
i2
b
2j
+... +a
ik
b
kj
=
x=k
x=1
a
ix
b
xj
Exemplo 150 Uma matriz 2 3 multiplicada por uma matriz 3 2 resulta
uma matriz 2 2. Portanto:
_
1 2 -1
0 3 2
_
_
_
1 2
0 3
2 2
_
_
=
_
1 1 + 2 0 +1 2 1 2 + 2 3 +1 2
0 1 + 3 0 + 2 2 0 2 + 3 3 + 2 2
_
=
_
1 6
4 13
_
Observe que alterando a ordem da multiplicacao obteramos um resultado di-
ferente para as matrizes nesse exemplo. Para alguns outros pares de matrizes
poderia nem ser possvel a multiplicacao.
Exemplo 151
_
1 2
3 4
__
0 1
2 -1
_
=
_
1 0 + 2 2 1 1 + 2 1
3 0 + 4 2 3 1 + 4 1
_
172 CAP
ITULO 8. GRAFOS E
ARVORES
=
_
4 1
8 1
_
Exemplo 152 Dada a matriz
A =
_
_
0 1 1
1 0 1
1 1 0
_
_
Calcular A
2
, A
3
e A
4
.
A
2
= AA =
_
_
2 1 1
1 2 1
1 1 2
_
_
; A
3
=
_
_
2 3 3
3 2 3
3 3 2
_
_
; A
4
=
_
_
6 5 5
5 6 5
5 5 6
_
_
.
Descricao de um grafo
A representacao de um grafo por um desenho e util, se o n umero de vertices e arestas
sao pequenos. Na pratica, os grafos de valores comerciais tem muitos vertices e arestas,
para que o desenho seja util.
E necessario uma representacao que possa ser armazenada
no computador. Para a representacao dos vertices de um grafo uma lista e suciente. A
matriz de adjacencia e a lista de adjacencia, descrita abaixo, sao duas maneiras bem
conhecidas de representar as arestas de um grafo.
Matriz de adjacencia. A matriz de adjacencia de um grafo simples G, com p
vertices, e uma matriz p p de 0s e 1s :
A =
_
_
_
_
a
11
a
12
... a
1p
a
21
a
22
... a
2p
... ... aij ...
a
p1
a
p2
... a
pp
_
_
_
_
onde para todo i, j de 1 a p a
ij
=
_
1, se v
i
e adjacente a v
j
0, se v
i
nao e adjacente a v
j
Observe que, para cada ordem na qual os vertices sao considerados, havera uma matriz
de adjacencia para um dado grafo.
Lista de adjacencia. Para cada vertice de um grafo, lista os vertices adjacentes
a esse vertice. Isto e, para cada v em G denimos l(v) como sendo a lista de vertices
adjacentes a v,
Exemplo 153 Dar a representacao da matriz de adjacencia da gura 8.4.
8.2. GRAFOS 173
Figura 8.4: Um grafo
A =
_
_
_
_
_
_
0 1 1 0 1
1 0 0 1 0
1 0 0 0 0
0 1 0 0 1
1 0 0 1 0
_
_
_
_
_
_
A segunda linha, por exemplo, da matriz pretende mostrar que v
2
e adjacente
a v
1
e v
2
e adjacente a v
4
. As demais dao informacoes similares.
Exemplo 154 Dado, como uma tabela, a representacao de uma lista de
adjacencia para o grafo na gura 8.4
1 2 3 4 5
2 1 1 2 1
3 4 5 4
5
A segunda coluna da tabela, por exemplo, pretende mostrar que v
1
e adjacente
a v
2
, v
3
e v
5
. As outras colunas dao informacao similares.
A lista de vertices adjacentes a v
1
, v
2
, ... pode ser escrita explicitamente como
uma lista. Por exemplo, l(v
1
) =< v
2
, v
3
, v
5
>, ...
Passeio, caminho e outras coneccoes
Muitos problemas que podem ser modelados por grafos requerem consideracoes de modo
que os vertices possam ser conectados via arestas e os vertices intermediarios no grafo.
Por exemplo, o problema de achar a distancia mais curta e a mais longa entre vertices,
por exemplo.
Denicao 57 (Passeio) Um passeio de comprimento n num grafo e uma sequencia de
vertices e arestas formadas por cada par sucessivos de vertices.
Num grafo simples, o passeio pode ser descrito listando somente os vertices, por exem-
plo, v
0
v
1
...v
n
, onde se entende que o passeio contenha as arestas ligando os vertices su-
cessivos.
W(v
0
, v
n
) = v
0
, e
1
, v
1
, e
2
, ..., e
n
, v
n
, onde e
i
= v
i1
, v
i
.
174 CAP
ITULO 8. GRAFOS E
ARVORES
Figura 8.5: Um grafo com 3-ciclo
O comprimento de um passeio e o n umero de arestas que ele contem.
Se n = 0 o passeio consiste de um unico vertice, v
0
, e nenhuma aresta. Neste caso,
ele e chamado um passeio de comprimento 0. Se v
0
= v
n
o passeio diz-se fechado.
Denicao 58 (Caminho) Um passeio com vertices distintos e chamado um caminho.
Denicao 59 (Trilha) Um caminho com arestas distintas e chamado uma trilha.
Todo caminho e uma trilha. Mas, nem toda trilha e um caminho.
Denicao 60 (Circuito) Uma trilha fechada e chamado um circuito.
Um circuito nao e um caminho.
Denicao 61 (Ciclo) Um circuito com no mnimo uma aresta, e no qual o unico vertice
repetido e v
n
= v
0
, e chamado um ciclo.
Um ciclo de comprimento n e chamado um n ciclo. Um 1 ciclo e um laco, um
2 ciclo consiste de um par de arestas m ultiplas. Para n 3, um n ciclo pode ser
chamado um polgono.
Exemplo 155 no grafo da gura 8.5:
1. W(v
1
, v
5
) = v
1
v
2
v
3
v
5
v
4
v
3
v
5
e um passeio de comprimento 6.
2. W(v
1
, v
1
) = v
1
v
3
v
1
e um passeio fechado de comprimento 2, nao um
circuito.
3. P(v
1
, v
5
) = v
1
v
2
v
3
v
4
v
5
e um caminho de comprimento 4.
4. W(v
1
, v
2
) = v
1
v
3
v
4
v
5
v
3
v
2
e uma trilha, mas nao um caminho.
5. W(v
1
, v
1
) = v
1
v
2
v
3
v
4
v
5
v
3
v
1
e um circuito, mas nao ciclo.
6. v
1
v
4
v
3
nao e um passeio, pois v
1
, v
4
nao e uma aresta.
7. W(v
1
, v
1
) = v
1
v
2
v
3
v
1
e um 3-ciclo.
8.2. GRAFOS 175
Figura 8.6: Passeios de comprimento 2, de v
2
a v
5
, na gura 8.4
8. Seja V = v
1
, v
2
, v
3
e E = v
1
, v
2
, v
2
, v
3
, v
3
, v
1
. Entao, o subgra-
fo (V, E) contem seis ciclos como v
1
v
2
v
3
v
1
. O subgrafo esta associado a
uma classe de equivalencia de ciclos tendo os mesmos vetices e arestas.
A matriz de adjacencia oferece um metodo para a computacao do n umero
de passeios de um dado comprimento num grafo. Por exemplo, mostramos,
abaixo, como calcular o n umero de passeios de comprimento 2, num dado
grafo.
Exemplo 156 Achar e calcular o n umero de todos os passeios de compri-
mento 2, de v
2
a v
5
, no grafo da gura 8.4.
Na gura 8.6, estao desenhados todos os passeios possveis, de comprimento
2, de v
2
a v
5
, no grafo da 8.4. As arestas que existem podem ser representadas
por uma linha solida e sao rotulados por 1, como uma matriz de adjacencia.
As arestas que nao estao no grafo estao pontuadas e rotuladas por 0, como
na matriz de adjacencia.
Os passeios de comprimento 2 podem ser identicados multiplicando os rotulos
nas arestas que formam passeios possveis, para formar um rotulo de passeios.
Portanto, v
2
v
1
v
5
tem rotulo de caminho 1 1 que e 1 e um caminho de com-
primento de v
2
a v
5
. Entretanto, v
2
v
3
v
5
tem rotulo de caminho 0 0 que e 0
e este caminho possvel nao existe no grafo da gura 8.4.
Em geral, sejam a, b os rotulos de arestas para v
i
v
j
e v
j
v
k
, respectivamente.
Se ab = 1, entao v
i
v
j
v
k
e um passeio e se ab = 0, entao v
i
v
j
v
k
nao e um
passeio.
O n umero de todos os passeios possveis de comprimento 2, de v
2
a v
5
pode
ser encontrado pelo calculo
1 1 + 0 0 + 0 0 + 1 1 + 0 0
que gera dois caminhos de comprimento 2.
176 CAP
ITULO 8. GRAFOS E
ARVORES
Agora, o calculo acima e exatamente o mesmo que um calculo efetuado no processo
normal de multiplicac ao de matrizes. Para a matriz de adjacencia
A
2
=
_
_
_
_
_
_
0 1 1 0 1
1 0 0 1 0
1 0 0 0 0
0 1 0 0 1
1 0 0 1 0
_
_
_
_
_
_
_
_
_
_
_
_
0 1 1 0 1
1 0 0 1 0
1 0 0 0 0
0 1 0 0 1
1 0 0 1 0
_
_
_
_
_
_
A linha 2, da matriz A, no lado esquerdo representa as arestas, a partir de v
2
, para
cada um outro vertice, como podemos ver no lado esquerdo da gura 8.6. A coluna 5
da matriz A na direita, representa as arestas de cada vertice a v
5
, como pode ser visto
no lado direito da gura. A multiplicacao normal de matrizes gera o resultado da linha 2
versus a coluna 5, na posicao da linha 2 e coluna 5 de A
2
, abaixo. Em geral, o n umero
de passeios, de comprimento 2 de v
i
a v
j
, e o n umero na linha i e coluna j, de A
2
.
A
2
=
_
_
_
_
_
_
3 0 0 2 0
0 2 1 0 2
0 1 1 0 1
2 0 0 2 0
0 2 1 0 2
_
_
_
_
_
_
O resultado, acima, e generalizado na proposicao 12.
Proposicao 12 (Contagem de passeios) Seja A a matriz de adjacencia de um grafo.
Os elementos a
s
ij
, da matriz A
s
conta o n umero de passeios de comprimento s, de v
i
a v
j
,
no grafo.
Exemplo 157 Achar o n umero de passeios, de comprimento 4, de v
1
a v
3
no
grafo da gura 8.7.
Solucao: A matriz de adjacencia para este grafo e a matriz A do exemplo
152. A entrada na linha 1 e coluna 3 de A
4
e 5. Pela proposicao 12, acima,
existem cinco passeios de comprimento 4, de v
1
a v
3
. Por exemplo, v
1
v
3
v
2
v
1
v
3
.
8.3
Arvores
Em geral, um grafo tera mais que um caminho entre alguns pares de vertices e, talvez,
nenhum caminho entre outros pares. Um grafo com exatamente um caminho entre cada
par de vertices e chamado uma arvore. Portanto, uma arvore pode ser pensada como
tao eciente que ela tem bastante arestas para permitir a comunicacao entre cada par
de vertices. Nesta secao, desenvolveremos os conceitos de grafo conexo, arvore e arvore
binaria.
8.3.
ARVORES 177
Figura 8.7: grafo para o exemplo
Figura 8.8: o grafo das pontes de Konigsberg
Grafos conexos
Denicao 62 (Conexo) Um grafo G diz-se conexo se para todo par de vertices x, y G,
existe um caminho P(x, y).
Seja e uma aresta de um grafo G. Ge e o grafo obtido removendo e, do conjunto
de arestas de G.
Denicao 63 (Ponte) Seja G um grafo conexo. Uma aresta e de G, diz-se uma ponte
se o grafo Ge nao for conexo.
Denicao 64 (Passeio Euleriano, circuito) Um passeio que contem cada vertice exa-
mente uma vez e chamado um passeio Euleriano(ou trilha). Um circuito que contem cada
vertice, exatamente uma vez diz-se um circuito Euleriano.
Leonhard Euler(1707-1783) foi um matematico suico que resolveu um problema sobre
um grafo em 1736. Sua solucao foi, provalmente, o primeiro exemplo, de uma abordagem
de teoria de grafos por um matematico. O problema de Euler e chamado o problema
das pontes de Konigsberg. Ele consiste em determinar se o grafo geral, da gura 8.8, e
um circuito Euleriano.
Euler argumentou que nenhum circuito seria possvel, pois para que tal circuito exis-
tisse, todo vertice deveria ser de grau par. Cada verice deve ser usado exatamente uma
vez, num circuito Euleriano e para percorrer o circuito cada aresta que entrar num vertice
deve casar com um diferente que sai do vertice. Assim, o grau do vertice deve ser um
m ultiplo de 2. O argumento se aplica, igualmente, a todos os vertices.
Os vertices no grafo nas pontes de Konigisberg sao de grau mpar. Portanto, o proble-
ma nao tem solucao.
178 CAP
ITULO 8. GRAFOS E
ARVORES
Proposicao 13 (Euler) Se o grafo tiver um circuito Euleriano, entao cada vertice deve
ser de grau par. Isto e, uma condicao necessaria para um grafo possuir um circuito
Euleriano e que cada vertice seja de grau par.
Prova: O argumento de Euler(acima) prova a proposicao.
Corolario 2 Se um grafo tiver um passeio Euleriano, entao ele deve ter exatamente dois
vertices de grau mpar ou nenhum vertice de grau mpar.
Prova: Seja G tendo um passeio Euleriano iniciando no vertice a e terminanado no
vertice b.
Se a = b, entao a proposicao 13 se verica e todos os vertices tem grau par.
Se a ,= b, construa um grafo Ge, adicionando a aresta e = (a, b) a G. O novo grafo
tem um circuito Euleriano consistindo dos passeios de Euler de a a b, em G, juntamente
com a aresta e, de b ate a.
Pela proposicao 13, todo vertice em G e e par. Remova e, para obter G. Agora,
todo vertice e par, exceto a e b, os quais cada um tem uma aresta incidente removida e,
portanto, e mpar. A recproca do teorema de Euler e verdadeira. Ela pode ser provada
por inducao matematica.
Proposicao 14 (Recproca do teorema de Euler)
Se todos os vertices de um grafo nito conexo, tiver grau par, entao, este grafo possui
um circuito Euleriano. Isto e, uma condicao suciente para um grafo ter um circuito
Euleriano e que todo vertice seja de grau par.
Corolario 3 Um grafo nito, conexo que tem exatamente dois vertices de grau mpar
deve ter um passeio de Euler.
O algoritmo seguinte, para construir um passeio de Euler, ou circuito num grafo, e
devido a Fleury. Uma descricao informal e:
Inicie em qualquer vertice se eles sao todos de grau par, ou num vertice de grau mpar,
se exatamente dois tem grau mpar. Percorrer as arestas de um modo arbitrario, sugeito
somente as seguintes regras:
1. remover as arestas enquanto elas forem sendo percorridas, e se qualquer vertice se
tornar desconexo, remova-o tambem;
2. escolher uma ponte como uma aresta somente se nao existir nehuma alternativa.
Algoritmo(Fleury) Para construir um passeio ou circuito de Euler para o grafo.
8.3.
ARVORES 179
Entrada: Um grafo G.
Precondic oes: V (G) e nito e conexo e
(G tem exatamente dois vertices de grau mpar ou todos pares)
Metodo: Se os vetices de G sao todos pares chame um deles a
Se dois vertices sao mpares chame um dos vertices mpares a.
Seja W o grafo contendo o vertice a(somente).
Enquanto em G sobrar arestas:
se o grau(a) > 1 entao
achar uma aresta a, x em G que nao seja uma ponte
remover a aresta a, x de G
adicionar a aresta a, x a e o vertice x a W
caso contrario(se o grau(a=1)
(existe somente uma aresta a,x incidente com a)
remover a aresta a, x e a de G
adicionar a, x e o vertice x a W
Seja o novo vertice a o ultimo x.
(Agora, repita. Um novo x e encontrado na primeira linha do laco.)
Sada: Um caminho W.
Poscondicao: (W e um passeio de Euler para G e G tem 2 vertices mpares) ou (W e um circuito de Euler para G e todos os vertices de G sao pares)
Denicao 65 (Caminho e ciclo Hamiltoniano) Um caminho hamiltoniano num grafo
simples e um que contem cada vertice exatamente uma vez.
Um ciclo Hamiltoniano contem cada vertice exatamente uma vez, execeto que o pri-
meiro vertice e o mesmo que o ultimo.
Uma condicao necessaria e suciente para um circuito ser Eulerian e que cada vertice
tenha grau par. Nenhuma condicao como essa esta disponvel para ciclo. Achar um ciclo
Hamiltoniano num grafo e equivalente ao problema do caixeiro viajante(com arestas
de pesos unitarios), como veremos no proximo captulo). Nao existe nenhum algoritmo
eciente para a sua solucao.
Denicao 66 (Desconexo) Um grafo que nao e conexo e chamado desconexo. Os sub-
grafos dos grafos que sao conexos sao chamados componentes conexas do grafo.
No captulo 7, denimos uma relacao de equivalencia como tendo tres propriedades.
Ela deve ser reexiva, simetrica e transitiva. Uma relacao de equivalencia sobre um con-
junto S parciona-o em subconjuntos, chamados classes de equivalencia. Cada par de
elementos numa dada classe de equivalencia satisfaz a relacao. Agora, denimos uma re-
lacao chamada conexa sobre grafos e usamo-la para identicar as componentes conexas
de um grafo.
180 CAP
ITULO 8. GRAFOS E
ARVORES
Proposicao 15 Seja uma relacao denida sobre os vertices de um grafo simples, G.
xy = existe um caminho P(x, y)
Entao, e uma relacao de equivalencia no vertices de G.
Prova:
1. e reexiva. Existe um caminho(de comprimento zero) P(x, x) para todo x.
Portanto, xx.
2. e simetrica. Se existe um caminho P(x, y), entao existe tambem um caminho
P(x, y).
Portanto, se xy, entao yx.
3. e transitiva. Dados xy e yx existe um caminho P(x, y) e um caminho P(y, x).
Colocando esses caminhos juntos, certamente existe um passeio de x a z, mas ele
pode ter vertices repetidos e, portanto, pode nao ser um caminho.
Va de x a y, a longo de P ate atingir o primeiro vertice comum a P e Q. Chame
este vertice u. Deve existir um a, pois y pertence a P e Q, mesmo se nao existir
outro vertice.
Agora, a parte de P de x a u, conjuntamente com a parte de Q, de u a z constitui
um caminho de x a z.
Portanto, xz.
Desse modo e uma relacao de equivalencia.
Deduzimos da assertiva e uma relacao de equivalencia nos vertices de um grafo, que
ela parciona os vertices de G em classes de equivalencia. Cada classe de equivalencia dos
vertices ligado por um caminho forma um subgrafo conexo de G, com aqueles caminhos.
Os subgrafos conexo(pela denicao 66).
Arvores
A seguir, comecando com as denicoes, iremos acrescentando propriedades de modo a
obter uma arvore. Veremos seis denicoes diferentes de arvore, que apresentaemos como
uma proposi cao.
Denicao 67 (
ITULO 8. GRAFOS E
ARVORES
O ponto da proposicao 18 e que qualquer uma das assertivas de 2 a 6 poderia substituir
a denicao 67, como uma denicao satsfatoria de uma arvore.
A organizacao logica da prova e interessante. Mostraremos que cada uma das 1 2,
3 4, 4 5, 5 6, 6 1 e verdadeira. Entao, qualquer assertiva implica todas
as outras, e, assim a proposicao ca provada.
Prova: A proposicao e verdadeira para n = 1. Considere n 2.
1 2. Isto segue da denicao 67 e a proposicao 16.
2 3. Suponha que T e desconexo. Obtenha uma contradicao da proposicao
16.
3 4. A remocao de qualquer aresta resulta num grafo com n vertices e n2
arestas. Pode ser mostrado, por inducao sobre n, que tal grafo e desconexo.
Logo, por contradicao a proposicao e verdadeira.
4 5. Como T e conexo, cada par de vertices esta conectada por um
caminho. Mas, nenhum par de vertices esta conectado por dois caminhos, pois
esses caminhos produziria um ciclo. A adicao de uma nova aresta entre os
vertices u, v T cria um ciclo com o caminho existente P(u, v).
6 1. Suponha que T e desconexo. Adicione uma aresta com um vertice
numa componente e o outro vertice numa componente diferente. Nenhum ciclo
e criado, e isso contradiz a proposicao.
Arvores binarias
Qualquer vertice de uma arvore pode ser escolhido como um vertice raz. Mas, perderemos
esta exibildade se pedirmos que o grafo seja dirigido. Poderemos restringir uma arvore
dirigida limitando o n umero de arestas deixando cada vertice. A mais simples de tais
estruturas e uma arvore binaria dirigida no qual nenhum mais que duas arestas pode deixar
cada vertice. Se, alem disso, as arestas deixando cada vertice sao ordenadas rotulando-
os(digamos) `esquerda e direita, entao cada vertice e localizado por um unico caminho,
representado por uma sequencia de esquerdas e direita, a partir da raz.
Uma arvore como esta pode ser chamada uma arvore binaria, dirigida, ordenada.
A uma arvore como esta chamaremos abreviadamente ABDO.
Uma subarvore de uma arvore t, e qualquer subconjunto dos vertices de t, juntamente
com o subconjunto dos vertices de t, que forma uma arvore. Cada vertice de uma ABDO
t e a raz de uma subarvore de t. Este fato sugere uma denicao recursiva.
Denicao 68 (ABDO) Uma arvore binaria, dirigida e ordenada, t, e denida recursi-
vamente por
t = nula (x, y, z)
8.3.
ARVORES 183
Figura 8.9: Uma ABDO
onde nula e a arvore vazia, que nao tem nenhum vertice ou aresta e (x, y, z) e uma
tripla ordenada.
x e a subarvore `a esquerda;
y e a raz de t; e
z e a subarvore `a direita.
O segundo elemento, y, da tripla ordenada, chamada a raz da arvore, pode ser usada
para armazenar informacao. Uma tarefa possvel e pesquisar uma arvore pela infor-
macao armazenada nela.
Exemplo 158 Mostre que o grafo armazenado na gura 8.9 satisfaz a de-
nicao 68 de uma ABDO.
Solucao: O grafo desenhado na gura 8.9 e uma ABDO se ela for nula ou
(v
2
, v
1
, v
3
v
4
v
5
) for uma arvore.
Se o grafo for nao nulo, devemos investigar a tipla ordenada. A tripla e uma
ABDO, se v
2
e uma ABDO(uma subarvore `a esquerda) e v
1
e a raz(isto porque
ele e um vertice no segudo lugar na tripla), e se (v
3
, v
4
, v
5
) e uma ABDO(uma
subarvore `a direita).
v
2
e uma ABDO se(nula, v
2
, nula) e uma ABDO, o que acontece.
(v
3
, v
4
, v
5
) e um a ABDO se:
1. v
3
e uma ABDO(isto acontece porque (nula, v
3
, nula) e uma ABDO);
2. v
4
e a raz( o que acontece);
3. v
5
e uma ABDO( o que e verdade porque (nula, v
5
, nula) e uma ABDO).
Portanto, o grafo desenhado na gura 8.9 e uma ABDO.
Para ajudar a extrair informacoes, denimos a seguinte funcao parcial sobre uma
arvore t. A arvore nao esta denida para a arvore nula.
Caso contrario:
184 CAP
ITULO 8. GRAFOS E
ARVORES
esquerda(x) = x, a subarvore `a esquerda de t
info(t) = a informacao em y, a raz de t
direita(t) = z, a subarvore `a direita de t.
Existem varias maneiras pelas quais poderemos extrair informacao armazenada no
vertice de uma ABDO. A seguinte funcao denida recursivamente recebe como entrada
uma ABDO, t, com informacao mantida em cada um de seus vertices e devolve como
sada a informacao como uma lista.
Seja listaDe
Arv : T L
istaDe
Arv(esquerdA(T)))
colocar < info(t) >
colocar listaDe
Arv(direita(t))
_
_
_
se t ,= nula
Exemplo 159 Aplicar listaDe
Arv(v
2
)= <> [[ < p > [[ <>
colocar < r >
colocar listaDe
Arv(v
3
, v
4
, v
5
)
(i.e., <> [[ < i > [[ <> [[ < z > [[ < e > [[[[ <>)
Efetuando o colocar obtemos < p, r, i, z, e >.
A funcao listaDe
Arv pode ser escrita como um algoritmo cujo proposito seja extrair a
informacao extrada dos vertices de uma ABDO.
Algoritmo(
Arv(t)
Sada: l, uma lista
Poscondicoes: a lista l contem a informa de cada vertice de t, em alguma ordem
8.4.
ARVORES GERADORAS 185
8.4
Arvores geradoras
Nesta secao, analisaremos uma especie particular de arvore, chamada arvore
geradora. As arvores geradoras sao importantes porque elas tem o n umero
mnimo de arestas, enquanto permanece conexa.
Denicao 69 (
ITULO 8. GRAFOS E
ARVORES
Suponha que Ge conexo. (Veremos que isto leva a uma contradicao.)
Entao, existe um caminho P(u
0
, s) em G. Seja s
0
, s
1
, ..., s
k
os vertices
desse caminho, onde s
0
= u
0
e s
k
= s.
Agora, k 1, pois u
0
,= s. Seja s
i
o primeiro vertice nao em T. (Deve
existir tal vertice pois s
k
sera ele, se nao existir outro.) E i 1, pois
u
0
T. Agora, s
i1
, s
i
e uma aresta que liga um vertice em T.
Mas, o algoritmo termina porque nao existe nenhuma aresta como
tal, em T, assim G deve nao ser conexo.
Arvore de busca
As arvores geradoras tem a propriedade util de que existe um unico caminho
entre cada dois vertices. Entretanto, embora o algoritmo da arvore geradora
produza efecientemente uma arvore geradora, nao existe maneira de achar um
caminho entre um par arbitrario de vertices sem uma pesquisa que consuma
muito tempo.
A diculdade pode ser evitada da seguinte maneira. Chame o vertice ini-
cial, u
0
, no algoritmo da arvore geradora, de vertice raz. Considere a etapa
no algoritmo que adiciona a aresta u, v `a arvore T, onde u T e v / T. O
vertice u pode ser pensado como o predecessor ou pai do vertice v T.
Por isto escreveremos
pr(v) = u
Cada vertice, exceto o vertice raz tem um pai em T. Por completude
denamos um vertice vazio, . A funcao pr e, agora, denida sobre todos os
vertices de T. A funcao e representada sobre um diagrama por ponteiros
ou setas como na gura 8.10. No diagrama :
pr(a) = , pr(b) = a, pr(c) = a, pr(d) = b, pr(e) = b, pr(f) = b
e assim, o vertice da raz e a.
A funcao pai ou ponteiro pode ser aplicada sucessivamente aos vertices
para chegar no vertice raz, por exemplo, na gura 8.10:
pr
2
(f) = pr pr(f) = pr(b), o vertice da raz
Denicao 70 (Nvel ou profundidade) Se pr
k
(v) = r, onde r e o vertice da
raz, entao o vertice v diz-se esta no nvel(ou profundidade) k. Escreveremos
nvel(v) = k e denimos nvel(r) como sendo 0.
8.4.
ARVORES GERADORAS 187
Figura 8.10: A func ao pai
O caminho entre dois vertices m, n pode, agora, ser encontrado fazendo uma
busca aos pai, av os, etc., de m, n ate que seja encontrado um ancestral
comum.
Uma arvore geradora, com a estrutura adicional dada pela funcao pai, e
chamada uma arvore de busca.
No algoritmo seguinte, dizemos que os vertices que sao adjacentes somen-
te aos vertices na arvore sao dados. O algoritmo termina quando todos os
vertices forem dados. O algoritmo faz uso de uma estrutura chamada la.
Uma la e uma lista de objetos esperando para serem processados, de alguma
maneira. A regra com a qual os objetos sao escolhidos para serem removidos e
processados e chamada a prioridade da la. No algortimo que segue a priori-
dade e rst in, rst out(FIFO), isto e, o primeiro a entrar e o primeiro
a sair.
Algoritmo(
ITULO 8. GRAFOS E
ARVORES
Entrada: Um grafo simples G.
Precondic oes: Que G seja conexo.
Metodo: Seja a arvore T de vertice a arvore vazia. (T nula)
Escolha um vertice raz u
0
, e acrescente ele a T.
pr(u
0
) (o vertice vazio).
Seja a la de vertices como sendo < u
0
>.
Enquanto a la nao estiver vazia:
chame o vertice na cabeca da la, v.
para vada vertice w que for adjacente a v em G e
nao em T
adicione v, w a T.
coloque w na la de vertices
pr(w) v
remova v da la(ela diz-se dada).
Sada: Uma arvore de busca T.
Poscondicoes: T e uma arvore e V (T) = V (G);
Isto e, T tem os mesmos vertices que o grafo de entrada G e
e uma arvore geradora para G.
Prova: O algoritmo da arvore de busca primeiro em largura e, simplesmen-
te, um renamento do algoritmo da arvore geradora, nos quais os vertices sao
escolhidos de maneira particular e e acrescentada uma funcao ponteiro. Por-
tanto, se G for conexo, o algoritmo da largura primeiro encontra uma arvore
de busca com raz u
0
para G.
Exemplo 160 Construir uma arvore de busca primeiro em largura
do grafo G, dado a a seguinte tabela da lista de adjacencia.
0 1 2 3 4
1 0 0 1 1
2 2 1
3
4
Solucao: Escolha 0 como sendo vertice raz. A seguinte tabela
mostra o crescimento da arvore.
8.4.
ARVORES GERADORAS 189
Figura 8.11: Uma arvore de busca em largura primeiro de G
T fila funcao pai
0(raz) < 0 > pr(0) =
0, 1, 1 < 0, 1 > pr(1) = 0
0, 2, 2 < 0, 1, 2 > pr(2) = 0
0 e dado < 1, 2 >
1, 3, 3 < 1, 2, 3 > pr(3) = 1
1, 4 < 1, 2, 3, 4, > pr(4) = 1
1 e dado < 2, 3, 4 >
2 e dado < 3, 4 >
3 e dado < 4 >
4 e dado < >
O diagrama da gura 8.11 mostra a arvore de busca primeiro
em largura G, contruda, acima. A profundidade ou nvel de
qualquer vertice numa arvore de busca pode ser recuperado usando
a funcao pai(ponteiro). Por exemplo, o nvel do vertice 3 e obtido
observando pr(3) = 1; pr(1) = 0(a raz) e, portanto, pr
2
(3) = 0. O
vertice 3 e de nvel 2.
Uma outra abordagem para construir uma arvore de busca e construindo
caminhos tao longos quanto possveis, buscando os nveis mais profundos do
grafo, a partir da raz. Quando se tornar impossvel estender a arvore mais
para baixo da raz, retornamos um nvel para o vertice anterior e tentamos
ir descer no grafo, por um novo caminho. O algoritmo termina quando cada
vertice tiver sido visitado. O seguinte algoritmo para construir a arvore de
busca primeiro em profundidade usa uma la com uma prioridade diferente
daquela do algoritmo anterior. A prioridade da la e last in, rst out(LIFO),
isto e, o ultimo a entrar e o primeiro a sair. Cada chega e colocado na cabeca
da la.
Algoritmo(
ITULO 8. GRAFOS E
ARVORES
Entrada: Um grafo simples G.
Precondic oes: Que G seja conexo.
Metodo: Seja a arvore T de vertice a arvore vazia. (T nula)
Escolha um vertice raz u
0
, e acrescente ele a T.
pr(u
0
) (o vertice vazio).
Seja a la de vertices como sendo < u
0
>.
Enquanto ((a la nao estiver vazia) e (V (T) ,= v(G)):
chame o vertice na cabeca da la, v.
se o vertice w for adjacente a v em G e nao em T
entao adicione w, v a T
adicione w a T
coloque w na cabeca da la
pr(w) v
caso contrario remova v da la.
Sada: Uma arvore de busca T.
Poscondicoes: T e uma arvore e V (T) = V (G);
Isto e, T tem os mesmos vertices que o grafo de entrada G e
e uma arvore geradora para G.
Prova: O algoritmo anterior e tambem, simplesmente, um renamento do
algoritmo da arvore geradora, na qual e acrescentado um ponteiro. Portanto,
se G for conexo, o algoritmo da profundidade primeiro encontra uma arvore
de busca com raz u
0
, para G.
Exemplo 161 Para construir uma arvore de busca em profundi-
dade primeiro do grafo G, dado a a seguinte tabela da lista de
adjacencia.
0 1 2 3 4
1 0 1 1 0
4 2 3 2
3
Solucao: A aplica cao do algoritmo anterior a G, esta apresentado
a seguir.
8.4.
ARVORES GERADORAS 191
Figura 8.12:
Arvore de busca em profundidade
T fila pai
0 < 0 > pr(0) =
0, 1, 1 < 1, 0 > pr(1) = 0
1, 2, 2 < 2, 1, 0 > pr(2) = 1
2, 3, 3 < 3, 2, 1, 0 > pr(3) = 2
< 2, 1, 0 >
< 1, 0 >
< 0 >
0, 4, 4 < 4, 0 > pr(4) = 0
Todos os vertices de G estao em T, e assim ele para. A arvore de
busca esta desenhada na gura 8.12.
ITULO 8. GRAFOS E
ARVORES
Figura 8.13: Um grafo com pesos nas arestas
Entrada: um grafo G, com arestas e
1
, e
2
, ..., e
m
n vertices e com pesos nas arestas w(e
1
), ..., w(e
m
).
Precondic oes: Que V (G) seja nito e G conexo.
Metodo: Ordenar as arrestas de G de tal modo que
w(e
1
) w(e
2
) ... w(e
m
).
Faca T como sendo e
1
, juntamente com seus vertices.
Enquanto o n umero de arestas em T for menor que n 1 :
se T com a proxima aresta na ordem nao tem circuito,
entao adicione a proxima aresta e seu vertice a T.
Sada: Uma arvore T.
Poscondicoes: T e uma arvore com a soma mnima de
arestas com pesos e V (T) = V (G).
Exemplo 162 Achar uma arvore geradora, com pesos, mnima pa-
ra o grafo da gura 8.13.
Solucao: Comparar os pesos para as arestas de G:
1 2 = w(v
2
, v
3
) 2 = w(v
6
, v
7
) 4 5 6 7
8 = w(v
1
, v
2
) 8 = w(v
5
, v
6
).
Onde as arestas tendo pesos iguais a escolha da primeira aresta e
arbitraria. A arvore geradora contem as arestas v
2
, v
5
, v
2
, v
3
, v
6
, v
7
, v
1
, v
4
, v
2
, v
4
, nao v
3
, v
5
, nao v
4
, v
5
, nao v
1
, v
2
, nao v
5
, v
6
.
O algoritmo para porque seis arestas foram colocadas na arvore.
Na aplicacao, acima, do algoritmo da busca em profundidade, os circuitos
foram identicados visualmente, do desenho. O algoritmo precisaria ser re-
nado, para permitir a identicacao automatica de circuitos, antes de usa-lo
em problemas grande.
8.5. EXERC
ICIOS 193
8.5 Exerccios
1. Os vertices adjacentes a cada um dos vertices 1, 2, 3, 4, 5 e 6 num grafo
G, sao listados na seguinte tabela:
3 4 1 2 1 2
5 6 5 5 3 3
6 4
(a)
E possvel achar um passeio de Euler para G?
(b) Construir uma arvore de busca em largura primeiro para G, a partir
dos vertices com rotulo 1.
(c) Achar o vertice ou vertices mais distantes do vertice rotulado 1.
(d) Construir uma arvore de busca em profundidade primeiro, a partir
do vertice 1.
2. Os vertices adjacentes a cada um dos vertices 1, 2, 3, 4, 5 e 6 num graf
G, estao listados na seguinte tabela:
2 1 5 1 2 1
4 5 3 2
6 6 6 5
(a)
E possvel achar um passeio de Euler para G? Se for o caso, escreve-
lo.
(b)
E possvel achar um caminho Hamiltoniano para G? Se for o caso,
escreve-lo.
(c) Construir uma arvore de busca em largura primeiro a partir do
vertice v
4
. Achar o vertice ou vertices mais distantes do vertice
v
4
.
(d) Achar uma arvore de busca em profundidade primeiro a partir de v
4
.
3. A matriz de adjacencia para um grafo G, com vertices v
1
, ..., v
6
e:
A =
_
_
_
_
_
_
_
_
0 0 1 0 1 1
0 0 0 1 0 1
1 0 0 1 1 1
0 1 1 0 0 1
1 0 1 0 0 0
1 1 1 1 0 0
_
_
_
_
_
_
_
_
(a) Achar o passeio de Euler de G.
194 CAP
ITULO 8. GRAFOS E
ARVORES
(b) Construir um arvore de caminhos mais curtos de v
4
.
(c) Achar o vertice, ou vertices, mais distantes do vertice v
4
.
4. Tres piratas e tres marinheiros estao no lado esquerdo de um rio, e de-
sejam atravessa-lo para o lado direito, onde se encontra enterrado um
tesouro. Existe um barco que carrega duas pessoas. Este barco pode ser
dirigido por uma unica pessoa. O rio esta infestado de crocodilhos. Se
o n umero de piratas superar o n umero de marinheiros eles os jogarao no
rio, caso contrario os marinheiros estarao salvos. Modelar o problema
com um grafo e apresentar uma sequencia de movimentos para transferir
salvas, para o outro lados, as seis pessoas.
5. Desenhar os grafos correspondentes `as matrizes de adjacencia:
A =
_
_
_
_
0 1 1 0
1 0 0 1
1 0 0 1
0 1 1 1
_
_
_
_
B =
_
_
_
_
_
_
0 1 0 1 0
1 0 1 0 1
1 1 0 1 0
1 0 1 0 1
0 1 0 1 0
_
_
_
_
_
_
Calcular A
2
, B
2
e interpretar a informacao que eles dao sobre os passeios
nos grafos.
Captulo 9
Contar
O calculo da complexidade de tempo de um algoritmo requer a contagem do
n umero de vezes que alguma etapa basica ou operacao e repetida. O calculo
de uma probabilidade teorica, usualmente, requer contar o n umero de ele-
mentos num subconjunto. Contar, tambem, e importante por razoes menos
direta. Por exemplo, contar as etapas de um algoritmo nos da entendimento
da estrutura do algoritmo. Ao contar procuramos identicar ou impor algu-
ma estrutura sobre o conjunto dos objetos que estao sendo contados. Neste
captulo, examinaremos o processo de contar e aprenderemos a usar tecnicas
que simplicam a contagem. O captulo conclui com algoritmos para a geracao
de arranjos de um conjunto de objetos e para a geracao de subconjuntos de
um conjunto.
A maioria das pessoas pensam da contagem como sua primeira experiencia
em matematica. A habilidade de contar e vista como um habilidade basica,
apesar de nao ser facil denir contar satisfatoriamente. Recitar os n umeros,
um, dois, tres, ..., nao e, por si so, contar, nem mesmo necessario para
contar, desde que uma pessoa usando uma linguagem diferente usaria nomes
diferentes.
Num nvel mais profundo, a descoberta do paradoxo reexivo(que o con-
junto de todos os conjuntos, que nao sao membros de si proprios, e auto-
contraditorio, em termos) levou a uma nova abordagem dos fundamentos da
matematica. A abordagem construtiva comeca com a aritmetica recursiva.
ITULO 9. CONTAR
9.1 Tecnicas de contar
N umeros e contar
Um n umero natural, x, neste esquema construtivo, e denido por;
x e um n umero, se e somente se, ele for 0 ou o sucessor de um
n umero.
Nos e pedido para aceitar que 0 e um n umero, e se x e um n umero, entao
seu sucessor (x)
ITULO 9. CONTAR
Contando os membros de uma sequencia
Suponha que os elementos do conjunto A, a ser contado, forma uma sequencia.
Entao, deve ser possvel achar uma funcao injetiva que mapeando o conjunto
A sobre o conjunto 1, 2, 3, ..., n. Neste caso, o n umero de elementos em A e n.
Exemplo 165 Sejam m, n inteiros, com m n. Quantos inteiros
existem de m a n, incluindo n?
Solucao: A questao e para que contemos os membros da sequencia
m, m+ 1, m+ 2, ..., n. A funcao subtrair m segue da funcao adi-
cionar 1 mapeando a sequencia um a um no conjunto
1, 2, 3, ..., (n m+ 1)
Portanto, o n umero de inteiros na sequencia original e n m+ 1.
Exemplo 166 Quantos n umeros de dois dgitos sao m ultipols de 4?
Solucao: O conjunto de dois dgitos podem ser arranjados como a
sequencia
s =< 10, 11, 12, ..., 99 >
A funcao dividir por 4 mapea a sequencia um a um sobre
S
como sendo
S
, onde
S
= 2, 4, 6, ..., 764
A funcao dividir por 2 mapea A
, um a um, sobre
A
= 1, 2, 3, ..., 382
Consequentemente, existem 382 n umeros em A.
Contar produtos cartesianos
Proposicao 19 O n umero de elementos no produto cartesiano AB e n(A)
n(B).
Esta proposicao e referida, frequentemente, pela regra do produto. Ela
pode ser estendida para qualquer n umero de conjuntos, usando uma prova
por inducao matematica.
A prova da proposic ao 19 pode ser baseada na introduc ao de uma va-
riavel, contador, no algoritmo para construir os pares ordenados (a, b) de
A B.
contador 0
para i = 1 ate n(A)
para j = 1 ate m(B)
imprimir (a
i
, b
i
)
contador contador + 1
Para cada um das n(A) escolhas para a
i
, o par (a
i
, ) sera completado por
n(B) escolhas de b
j
, para constituir o par (a
i
, b
j
). No m do processo terao
sido construdos n(A) n(B) pares.
200 CAP
ITULO 9. CONTAR
Exemplo 168 Quantas sequencias binarias distintas de 8 dgitos
sao possveis?
Solucao: Cada dgito na sequencia e escolhido do conjunto B =
0, 1, com n(B) = 2.
As sequencias distintas correspondem `as 8-tuplas do produto car-
tesiano
B B B B B B B B
e pela proposicao 19(estendida) existem 2
8
deles. Portanto, sao
possveis 256 sequencias binarias de oito dgitos.
Contando subconjuntos
A tecnica de contar descrita nesta secao depende de alguma estrutura de
subconjunto a ser dado ao conjunto que pretendemos contar. As tecnicas de
contagem sao aplicac oes das seguintes proposicoes.
Proposicao 20 Suponhamos que o conjunto A esteja parcionado em celulas
A
1
, A
2
, ..., A
n
. Entao,
n(A) = n(A
1
) +n(A
2
) +... +n(A
n
)
Este teorema, `as vezes, e chamado a regra da adicao. Ele pode ser
provado por inducao matematica, sobre n.
Proposicao 21 Seja A um conjunto tendo complemento A
, relativo a um
conjunto universal U. Entao,
n(A) = n(U) n(A
)
Esta proposicao, `as vezes, e chamada a regra do complemento. Ela e um
colorario da proposicao 20.
Proposicao 22 (Inclusao/Exclusao) Sejam A, B e C conjuntos nitos. Entao,
n(A B) = n(A) + n(B) n(A B)
9.1. T
) = 9 9 = 81
n(A) = n(U) n(A
) = 100 81 = 19
A solucao 2 conta o conjunto complementar e, entao usa a propo-
sicao 21.
Solucao 3: Seja X um subconjunto de A no qual os n umeros com
dois dgitos contem 7. Seja Y o subconjunto de A no qual os
n umeros com um dgito e 7.
202 CAP
ITULO 9. CONTAR
Entao, X Y e o conjunto no qual, ambos, os dgitos nas casas de
dez e unitarios sao 7.
Agora,
n(X Y ) = n(X) +n(Y ) n(X Y )
= 9 9
= 10 + 10 1
= 19
Esta solucao impoe subconjuntos sobre A e usa a proposicao 22.
O princpio da casa de pombos(The pigeonhole principle)
O princpio da casa de pombos e aqui apresentado em duas versoes.
Proposicao 23 (Princpio da casa de pombos) Se mais do que n pombos sao
colocadas em n caixas, no mnimo uma caixa contem dois ou mais pombos.
A prova e por contradicao.
Exemplo 170 Dados quatro inteiros, mostrar que no mnimo dois
deles tem o mesmo resto quando divididos por 3.
Solucao: Os restos possveis quando dividimos por tres sao 0, 1 e
2. Rotulemos tres caixas 0, 1 e 2. Coloquemos os quatro
inteiros nas tres caixas. Entao uma das caixas deve ter no mnimo
dois inteiros. Isto e, no mnimo dois inteiros tem o mesmo resto
quando dividido por tres.
Exemplo 171 Dados tres inteiros, mostrar que deve existir dois
cuja soma e par.
Solucao: Cada inteiro e par ou mpar. Apliquemos o princpio da
casa de pombos, com n = 2, as caixas rotuladas par e mpar e
tres pombos correspondendo a tres inteiros. Entao, no mnimo
dois inteiros sao pares ou, no mnimo dois inteiros sao mpares.
Em cada caso, existem dois inteiros cuja soma e par.
Uma visao mais geral do princpio da casa de pombos estende a ideia de
contar, usando uma funcao um a um, como vimos acima.
9.1. T
ITULO 9. CONTAR
Agora, vamos construir uma funcao de um conjuunto S de 165
objetos para as dez somas de tres n umeros t
1
, ..., t
10
, formando
T.
n(S)
n(T)
=
165
10
> 16
Portanto, pela proposicao 24, o princpio da casa de pombos,
existe no mnimo um total de tres n umeros sucessivos, t
i
, que e
no mnimo 17.
O raciocnio combinatorio
A arte do raciocnio combinat orio e encontrar uma correspondencia entre um
problema de contar que estamos tentando resolver e um problema de contar
para o qual conhecemos a resposta. Em muitos casos, a estrutura que esta-
mos procurando pode ser encontrada reformulando o problema, usando novas
palavras. De fato, o argumento combinatorio, com frequencia, e apresentado
como um argumento de palavras, mais que como um argumento algebrico.
Um modelo para contar
O modelo descrito, abaixo, aparece em muitas formas, em diferentes questoes.
Esse modelo e usado para identicar quatro tipos basicos de problemas. Para
cada tipo de problema, e desenvolvida uma formula de contar.
O modelo
Suponhamos que temos um conjunto com n objetos, a
1
, ..., a
n
, e desejamos
contar o n umero de maneiras nas quais r objetos, do conjunto, podem ser
escolhidos. Para especicar, sem ambiguidade, um problema de contar, e
necessario estabelecer se:
1. e importante a ordem dos elementos escolhidos, e
2. o mesmo objeto pode ser escolhido, repetidamente.
o qua leva a quatro tipos de problemas de contar.
Para simplicar a explicacao, vamos considerar a escolha de dois elemen-
tos(isto e, r = 2) do conjunto a, b, c(isto e, n = 3).
9.1. T
ITULO 9. CONTAR
Generalizacao: O n umero de r-subconjuntos, com frequencia, chamado
r-combinacoes, que podemos fazer de um conjunto de tres objetos e escrito
C(n, r). Podem usar outros smbolos como, C
n
r
.
A funcao valor C(n, r) pode ser obtida de P(n, r), observando que os r
objetos podem ser arrados em r(r 1)(r 2)...e 2 1 maneiras. Mas, esses
arranjos nao sao contados como diferentes no calculo de C(n, r). Portanto,
C(n, r) =
n(n 1)...(n r + 1)
r(r 1)...2 2 1
Problema 12 A ordem nao e importante e sao permitidas repeticoes.
As escolhas sao chamadas 2-multiconjuntos. Os possveis 2-multiconjuntos
do conjunto a, b, c sao aa, ab, ac, bb, bc, cc. Consideremos tres caixas rotuladas
a, b, c(gura 9.2).
Temos duas letras para escolher, mas podemos escolher essas letras da
mesma caixa. Modelamos a escolha colocando duas bolas na caixa. Por
exemplo, duas bolas na caixa b geraria bb. Uma bola em a e uma bola em
b, geraria ab. A selecao bb pode ser lida como uma palavra SXXS, onde
S representa uma parede entre duas caixas e X representa uma bola. Nesta
notacao, ab seria representada pela palavra XSXS.
Achar o n umero de selecoes e equivalente a achar o n umero de palavras
que podem ser feitas de quatro smbolos SSXX, as letras Ss representando
as (3 1) paredes, separando as caixas a, b, c e os Xs, representando as duas
bolas. Uma palavra e determinada colocando-se o X em duis das (3 1 + 2)
posi coes. As outras posi coes sao preenchidas, automaticamente, pelos Ss.
Isto pode ser feito em C(3 1 + 2, 2) = C(4, 2) = 6 maneiras.
Generalizacao: O n umero de r-multiconjuntos que podem ser escolhidos
de um conjunto de n objetos e C(n 1 +r, r).
A escolha de um r-multiconjunto e equivalente a colocar r Xs em n caixas
rotuladas a
1
, ..., a
n
, como na gura 9.3. Isto e equivalente a arranjar r Xs e
(n1) Ss, como uma palavra. A palavra e determinada precisamente pela
escolha das posicoes para os r Xs. Essa escolha pode ser feita em C(n1+r, r)
maneiras.
Exemplo 175 Os sinais sao dados atraves de cinco bandeiras num
unica poste. As bandeiras de tres cores estao disponveis nu-
ma quantidade suciente para ter quantas bandeiras forem pre-
cisas, de qualquer cor. As cores sao sempre escolhidas na mes-
ma ordem(logo, a ordem nao e importante). Quantos sinais sao
possveis.
9.1. T
ITULO 9. CONTAR
Subconjuntos vazios
Os modelos de contar examinados acima, assumem implicitamente que r e n
sao inteiros e 1 r n. Consideremos, agora, o caso r = 0. Um 0-subconjunto
seria um conjunto vazio. O n umero de subconjuntos vazios de a
1
, ..., a
n
e
exatamente 1. Portanto, gostaramos que C(n, 0) = 1. Analogamente, e usual
para o matematica aceitar que existe uma 0-sequencia, uma 0-permutacao e
um 0-multiconjunto, para qualquer conjunto a
1
, ..., a
n
.
Agora, os resultados dessa secao podem ser estabelecidos formalmente co-
mo proposic oes, cujos provas sao os argumentos feitos acima.
Proposicao 25 Para os inteiros r, n 0, o n umero de r-sequencias que podem
ser feitas de um conjunto de n objetos e n
r
.
Prova: O caso r = 0. n
0
= 1, dar uma 0-sequencia, concordando com
nossa hipotese.
O caso r 1. O argumento esta dado no Problema 9.
Proposicao 26 Para os inteiros r, n 0, o n umero de r-permuta coes que
podem ser feitas de um conjunto de n objetos e:
P(n, r) =
_
n(n 1)...(n r + 1)(i.e., rfatores) se n r 1
1 se r = 0
Usando fatorial, o teorema pode ser estabelecido:
P(n, r) =
n!
(n r)!
, onde n r 0.
Proposicao 27 O n umero de r-subconjuntos(i.e, r-combinacoes) de um con-
junto de n objetos, onde 0 r n, e dado por:
C(n, r) =
P(n, r)
r!
=
n!
r!(n r)!
Prova: O caso r=0. C(n, 0) = 1, que concorda com a nossa hipotese de
que existe exatamente um 0-subconjunto, para quaquer conjunto.
Para o caso r 0, ja foi feito o argumento no problema 11.
Proposicao 28 O n umero de r-multiconjuntos que podemos formar de um
conjunto com n objetos, onde 0 r e:
9.1. T
ITULO 9. CONTAR
1 e, x
i
nao esta no subconjunto se o i-esimo dgito for 0. Duas escolhas para
cada dgito nos da 2
n
strings binarias e, portanto, 2
n
subconjuntos. Logo,
n
i=0
C(n, i) = 2
n
Proposicao 31 Para os inteiros n, k tais que 0 k n:
C(n, k) = C(n 1, k) +C(n 1, k 1)
Prova: Consideremos um conjunto U = a
1
, a
2
, ..., a
s
, ..., a
n
, no qual a
s
e
um elemento especial.
Todos os subconjuntos com k elementos( os k-subconjuntos) podem ser
parcionados em duas classes: aqueles que contem a
s
e aqueles que nao contem.
O n umero de todos os k-subconjuntos e C(n, k).
O n umero de k-subconjuntos que nao contem a
s
e o n umero de maneiras
de escolher k elementos de U a
s
, isto e, C(n 1, k 1).
O n umero de subconjuntos que contem a
s
e o n umero de maneiras de
escolher os outros k 1 elementos U a
s
, isto e, C(n 1, k 1).
Portanto, C(n, k) = C(n 1, k) +C(n 1, k 1).
Juntando com C(n, 0) = 1 e C(n, n) = 1, a formula para C(n, k), dada na
proposicao 31, nos fornece um esquema recursivo para o calculo de C(n, k).
Os exemplos a seguir, tratam com problemas que, supercialmente, pare-
cem nao ter nada em comum. No entanto, cada um deles pode ser traduzido
num problema com estrutura similar `aquele do primeiro exemplo. A identi-
cacao da similaridade estrutural e outro aspecto do raciocnio combinatorial.
Os problemas sao todos do tipo sequencia com repeticao.
Exemplo 177 Quantas palavras diferentes de oito letras podemos
formar com cinco A
s, dois B
s e um C?
Solucao: Suponha, primeiro, que as oito letras sao todas diferen-
tes, indicando isso colocando temporariamente subscritos nas le-
tra.
A
1
A
2
A
3
A
4
A
5
B
1
B
2
C
Na hipotese de as letras serem distintas, existem 8! arranjos dife-
rentes. Mas os As contribuem com 5! arranjos, para cada arranjo
9.1. T
ITULO 9. CONTAR
Figura 9.4: O n umero de solucoes.
Uma maneira alternativa de apresentar a resposta do exemplo anterior e:
C(8, 5). Esta forma de resposta e produzida argumentando que os 0s podem
ser colocados em cinco das oito posic oes disponveis em C(8, 5) maneiras. Os
1s podem, entao ser colocados nos tres lugares restantes, numa maneira.
Exemplo 179 Encontrar o n umero de solucoes da equacao
x + y = 10
onde, x, y, z sao inteiros e x, y, z 0. As solucoes podem ser geradas
colocando 10 bolas em tres caixas rotuladas x, y, z(gura 9.4).
Representamos as bolas pela letra B e as paredes entre as caixas
pela letra S.
Entao, cada palavra formada dos 12 smbolos representa uma so-
lucao da equacao.
Por exemplo, BBSBBBSBBBBB representa x = 2, y = 3, z = 55 e
BBBBSSBBBBBBrepresenta x = 4, y = 0, z = 6. O argumento do
exemplo 177 mostra que o n umero de solucoes da equa cao e
12!
10!2!
Exemplo 180 Quantas n umeros de 1 a 10 000 a soma dos dgitos
e 7?
Solucao: O problema e equivalente a colocar sete bolas em quatro
caixas.(gura 9.5).
Solucao: Como no exemplo 179, representemos as bolas pela letra
B e as paredes entre as caixas representemos pela letra S. Cada
palavra de dez smbolos representa uma solucao da questao:
9.2. O BINOMIAL E TEOREMAS MULTINOMIAIS 213
Figura 9.5: Os n umeros de 1 a 10 000.
Por exemplo, BBSBBBBSBS representa 2410 e SSBBBBBBSB
representa 61.
O argumento do exemplo 177 nos da:
10!
7!3!
=
10 9 8
3 2 1
= 10 3 4 = 120 palavras
Existem 120 n umeros de 1 a 10 000, com uma soma de dgitos 7.
Exemplo 181 O computador aloca trabalhos de quatro impressoras.
Dados 12 jobs para ser distribudos, de modo que a impresora P
tem 5 jobs, a impressora Q 3 jobs e a impressora R tem dois jobs,
achar o n umero de maneiras que a distribuicao pode ser feita.
Solucao: O problema pode ser visto como o o n umero de palavras
que podem ser formadas das letras PPPPPQQQRRSS. A resposta
e
12!
5!3!2!@!
.
9.2 O binomial e teoremas multinomiais
O teorema binomial
Nesta secao consideraremos a expansao de expressoes como (a +b)
n
, onde n e
um inteiro positivo, usando uma abordagem combinatorial e nao algebra.
Vamos ver o que podemos aprender da expansao (a +b)
n
.
214 CAP
ITULO 9. CONTAR
(a +b)
3
= (a +b)(a +b(a +b) (1)
= a
3
+ 3a
2
b + 3ab
2
+b
3
(2)
= C(3, 0)a
3
b
0
(3)
= +C(3, 1)a
2
b
1
(4)
= +C(3, 2)a
1
b
2
(5)
= +C(3, 3)a
0
b
3
(6)
A linha (1) estabelece o que queremos dizer com os smbolos no lado es-
querdo da equacao.
Cada termo na linha (2) e construdo escolhendo a de m parenteses e b de
n parenteses da forma
a
m
b
k
, onde m + n = 3.
O termo 3a
2
b e construdo escolhendo a dos dois parenteses e b de um
parentese. A selecao de um parentese do qual tiramos b pode ser feito em
C(3, 1) = 3 maneiras e a escolha dos parenteses dos quais tiramos a sao, entao,
automaticamente os dois da esquerda.
O termo 3a
2
corresponde a C(3, 1)a
2
b
1
(linha(4)).
O termo a
3
e construdo escolhendo a de tres parenteses e b de nenhum. O
termo a
3
corresponde a C(3, 0)a
3
b
0
(linha (3)).
Em geral, os termos sao da forma C(3, k)a
m
b
k
, onde m+k = 3.
Concisamente, o resultado pode ser estabelecido como:
(a +b)
3
=
3
k=0
C(3, k)a
m
b
k
, onde m+k = 3
ou
(a +b)
3
=
3
k=0
C(3, k)a
3k
b
k
O argumento pode ser generalizado para qualquer potencia inteira positiva,
por inducao matematica, atraves da seguinte proposicao.
Proposicao 32
(a +b)
n
= (a +b)(a +b...(a +b)
= C(n, 0)a
n
b
0
+C(n, 1)a
n1
b
1
+... +C(n, n)a
0
b
n
=
n
k=0
a
m
b
k
, m+k = n
=
n
k=0
C(n, k)a
nk
b
k
9.2. O BINOMIAL E TEOREMAS MULTINOMIAIS 215
Exemplo 182 Escrever a expansao de (x +
1
x
)
5
.
Solucao:
(x +
1
x
) = x
5
+C(5, 1)x
4
(
1
x
) +C(5, 2)x
3
(
1
x
)
2
+...
= x
5
+ 5x
3
+ 10x + 10
1
+ 5x
3
+x
5
Exemplo 183 Escrever o quociente do termo x
11
em (3x + 2
2
)
9
.
Solucao:
(3x + 2x
2
)
9
=
9
i=0
C(9, i)(3x)
9i
(2x
2
)
i
=
9
i=0
C(9, i)3
9i
2
i
x
9+i
Se 9 +i = 11, entao i=2. O coeciente de x
11
e:
C(9, 2)3
7
2
2
=
9 8
2 1
3
7
2
2
= 314928
Exemplo 184 Prove que
kmpar
C(n, k) =
k par
Cn, k.
Solucao: Seja a=1 e b=-1, na proposi cao 32.
Entao, obteremos:
0 = C(n, 0) C(n, 1) +C(n, 2) ... + (1)
n
C(n, n)
Portanto, a soma dos C(n, k), para k mpar e igual a soma dos
C(n, k), para k par.
O teorema multinomial
O teorema binomial pode ser generalizado para uma expressao multinomial
como segue.
Proposicao 33 (Multinomial) Para todo n, inteiro positivo,
(x
1
+x
2
+... +x
m
)
n
e a soma de todos os termos da forma
216 CAP
ITULO 9. CONTAR
n!
r
1
!r
2
!...r
m
!
x
r
1
x
r
2
2
...x
r
m
m
Para todos as solucoes, inteiras nao negativas, de r
1
+r
2
+... +r
m
= n.
Prova: Um termo na expansao e obtido do produto
(x
1
+x
2
+... +x
m
)(x
1
+x
2
+... +x
m
)...(x
1
+x
2
+... +x
m
)
selecionando um termo de cada um dos n parenteses.
O termo em
x
r
1
1
x
r
2
2
...x
r
m
m
e obtido selecionando x
1
de r
1
parenteses, x
2
de r
2
parenteses e assim por
diante.
Cada selecao corresponde a uma palavra construda de r
1
letras x
1
, r
2
letras x
2
, e assim por diante. A selecao pode ser dada em
n!
r
1
!r
2
!...r
m
!
maneiras.
Exemplo 185 Espandir (x +y +z)
3
pela proposicao multinomial.
Solucao:
(x + y + z)
3
=
3!
p!q!r!
x
p
y
q
z
r
Para toda solucao inteira de p+q+r=3, p, q, r 0.
Obtemos
(x +y +z)
3
= x
3
+y
3
+z
3
+ 3x
2
y + 3xy
2
+ 3y
2
z + 3yz
2
+ 3x
2
z
+3xz
2
+ 6xyz
Existem dez termos no todo, que e o n umero de solucoes inteiras
nao-negativas de p +q +r = 3.
9.3. ALGORITMOS 217
Exemplo 186 Quantos termos existem na expansao de (x+2y+3z)
5
,
pela proposicao multinomial.
Solucao: O problema e equivalente a encontrar o n umero de so-
lucoes inteiras nao-negativas de p +q +r = 5.
A resposta e
7!
5!2!
= 21.
Exemplo 187 Encontrar o coeciente de x
5
na expansao (1 + 3x +
2x
2
)
4
.
Solucao:
O termo geral da expansao e
4!
p!q!r!
1
p
(3x)
q
(2x)
r
, p +q +r = 4 p, q, r 0
=
4!
p!q!r!
(3)
q
2
r
x
q+2r
Os termos em x
5
sao dados pelas soluc oes inteiras de
p +q +r = 4, q + 2r = 5 satisfazendo 0 p, q, r 4.
As solucoes sao p = 1, q = 1, r = 2 e p = 0, q = 3, r = 1.
O coeciente de x
5
e
4!
1!2!
3 2
2
+
4!
3!1!
3
3
2 = 360.
9.3 Algoritmos
O tema principal deste captulo e contar. Entretanto, em alguns problemas
e util gerar as permutac oes, os subconjuntos ou outros objetos a serem cons-
trudos. Nesta secao, apresentaremos alguns algoritmos para gerar subcon-
juntos e um algoritmo para gerar permutacoes.
218 CAP
ITULO 9. CONTAR
Subconjuntos de um conjunto
Algoritmo 10 Para gerar todos os subconjuntos de um conjunto nito.
Entradas: Um conjunto S = x
1
, x
2
, ..., x
n
n, o n umero de elementos de S.
Sadas: Todos os subconjuntos de S.
A ideia por tras desse algoritmo e construir uma funcao caracterstica
para identicar os elementos de S, para cada subconjunto. Se S tiver n
elementos, os strings binarios com n dgitos servem ao proposito. Para
uma string binaria dada, cada dgito corresponde a um x em S. Se o dgito
for 1, entao incluir x no subconjunto. Se o dgito for 0, entao excluir x.
Metodo: m 0
Enquanto m < 2
n
:
expressar m como uma string binaria de comprimento n
(m = a
1
2
n1
+a
2
2
n2
+... +a
n
2
0
)
dena a funcao caracterstica
(c
i
a
i
, para i = 1, 2, ..., n)
escolher o subconjunto Y , correspondendo a m
(se c
i
= 1, entao incluir x
i
em Y )
registrar Y (imprimir ou armazenar num arquivo)
m m+ 1.
Exemplo 188 Achar todos os subconjuntos de S = a, b, c, usando
o algoritmo 10.
Solucao:
m c
1
c
2
c
3
Subconjuntos Y
0 0 0 0
1 0 0 1 c
2 0 1 0 b
3 0 1 1 b, c
4 1 0 0 a
5 1 0 1 a, c
6 1 1 0 a, b
7 1 1 1 a, b, c
Algoritmo 11 Para gerar todos os subconjuntos de um conjunto nito.
9.3. ALGORITMOS 219
Metodo: Se o conjunto S for vazio, entao e o unico subconjunto de S, registrar
Caso contrario, selecionar um elemento arbitrario x S.
Achar todos os subconjuntos de S x e
para cada subconjunto Y de S x, registrar x Y.
A ideia por tras desse algoritmo e usar uma abordagem recursiva. A as-
sertiva achar todos os subconjuntos de S x, envolve uma chamada
recursiva.
Os conjuntos S, S x,...formam uma sequencia estritamente decrescente,
onde cada conjunto e um subconjunto proprio do anterior. A sequencia deve
terminar com o conjunto vazio, , pois S e nito.
Portanto, a recursao termina.
Exemplo 189 Usar o algoritmo 11 para achar todos os subconjun-
tos de a, b, c.
Solucao: Denamos subconjunto como uma funcao do conjunto de
conjuntos tal que subconjuntoX signica sada de todos os subcon-
juntos de X.
S x S x Y sada
a, b, c a b, c subconjuntob, c (defer (1))
b, c b c subconjuntoc (defer (2)))
c c subconjunto()
c
retornar(2) , c b, b, c
retornar(1) , c, b, b, c a, a, c
a, b, a, b, c
Observe que os algoritmos 10 e 11 geram subconjuntos na mesma ordem.
A ideia por tras do proximo algoritmo e gerar os subconjuntos numa ordem
particular. A exigencia e que os subconjuntos sucessivos devem diferir por por,
exatamente, um elemento. O algoritmo usa, o que e conhecido por, codigo de
Gray.
Denicao 72 Um codigo de Gray de comprimento n e uma sequencia de 2
n
strings binarias, cada uma com comprimento n diferindo da sua vizinha, na
sequencia, por exatamente um dgito.
Exemplo 190 Um codigo Gray de comprimento 2 e a sequencia
11,01,00,10.
220 CAP
ITULO 9. CONTAR
Figura 9.6: Um grafo 4-vertice.
O codigo Gray no exemplo corresponde a um ciclo Hamiltoniano sobre um
grafo 4-vertice, mostrado na gura 9.6.
Uma algoritmo recursivo para construir codigo de Gray e dado abaixo.
Algoritmo 12 (Codigo de Gray) Para gerar todas as sequencias binarias de
comprimento k, em ordem, de modo que as sequencias sucessivas diram de
exatamente um dgito.
Metodo: Comecar com a sequencia de todos os zeros. Para passar da
sequencia
b
1
b
2
b
3
...b
k
para a proxima, examinamos as somas de dgitos
b
1
+b
2
+b
3
+... +b
k
,
b
2
+b
3
+... +b
k
,
b
3
+... +b
k
, ..., etc.
Se b
i
+b
i+1
+... +b
k
for o primeiro dessas somas a ser par, substituimos o
dgito b
i
por 0, se ele for 1 e 1 se ele for 0.
Se todas as somas forem mpar isto signica que atigimos a ultima se-
quencia.
Exemplo 191 Achar um codigo de Gray de comprimento 3.
O codigo de Gray gerado pelo algoritmo 12, com k = 3 e
000, 100, 110, 010, 011, 111, 101, 001
Um codigo de comprimento 3 corresponde a um circuito Hamilto-
niano de um grafo 8-vertice(isto e, um cubo).
9.3. ALGORITMOS 221
Algoritmo 13 Para gerar todos os subconjuntos de um conjunto nito, usan-
do um codigo de Gray.
Entradas: Um conjunto S = x
1
, ..., x
n
n, o n umero de elementos em S.
Sadas: Todos os subconjuntos de S.
Poscondicoes: Os subconjuntos gerados devem ser registrados numa ordem tal que os conjuntos
sucessivos diferem em, exatamente, um elemento.
Metodo: Construir um codigo de Gray de comprimento n.
Selecionar os suconjuntos de S, usando o codigo de Gray
como a funcao caracterstica.
Exemplo 192 Achar todos os subconjuntos de a, b, c, usando o al-
goritmo 13.
Solucao: Usando o codigo de Gray, gerado no exemplo 191, co-
mo funcao caracterstica, os subconjuntos sao obtidos na seguinte
ordem.
, a, a, b, b, b, c, a, b, c, a, c, c
9.3.1 Permutac oes
Sao conhecidos muitos algoritmos para gerar permutacoes. O algoritmo apre-
sentado aqui, produz todas a n-permutac oes de um conjunto de n objetos,
A = a
1
, a
2
, ..., a
n
.
Numa secao anterior uma permutacao dos elementos de um conjunto foi
descrito como um arranjo daqueles elementos nos quais a ordem e impor-
tante e nao e permitido repeticoes. Essa descricao nao e satisfatoria como uma
denicao, pois uma permutacao e um arranjo. Isto e, uma palavra foi ex-
plicada pela outra. A seguinte denicao de permutacao supera esse problema,
denindo uma permutacao como uma especie de funcao.
Exemplo 193 A func ao e um mepeamento de
A = a
1
, a
2
, a
3
, a
4
, a
5
ITULO 9. CONTAR
Pois a funcao e uma a uma de A sobre si proprio, se for uma
permutacao de A.
A permutacao pode ser denida pela notacao de matriz
_
a
1
a
2
a
3
a
4
a
5
a
4
a
1
a
5
a
2
a
3
_
na qual cada elemento na linha de cima e mapeado no elemento diretamente
abaixo. Se for conhecido a ordem original a
1
a
2
a
3
a
4
a
5
, entao a permutacao e
sucientemente identicada por (a
4
, a
1
, a
5
, a
2
, a
3
) ou, simplesmente, 41523.
Uma medida do conte udo para o qual cada elemento esta fora da ordem
relativa a ordem natural (12345) da sequencia e dada pela funcao d de des-
locamento.
O valor da funcao de deslocamento em a
i
, ou seja, d(a
i
), e o n umero de
elementos de A, `a esquerda de a
i
, na permutacao que estaria `a direita de a
i
,
na ordem natural. No exemplo, acima, d(a
2
) = 2, pois a
4
, a
5
estao `a esquerda
de a
2
na ordem natural. Analogamente, d(a
1
) = 1, d(a
3
) = 2, d(a
4
) = 0, d(a
5
) = 0.
A funcao de deslocamento d e denida, informalmente,
d : a
1
, a
2
, ..., a
n
0, 1, ..., (n 1)
d(a
i
) = d
i
=
_
_
0 se a
i
na permutacao for mapeado sobre si proprio, ou
um elemento para sua esquerda na ordem original
1 se a
i
for mapeado num elemento k colocado `a
direita na ordem original.
Exemplo 194 Achar a sequencia de deslocamentos (d
1
, d
2
, ..., d
5
) para
a permutac ao , denida no exemplo 193, acima.
Solucao:
a
1
a
2
a
3
a
4
a
5
a
4
a
1
a
5
a
2
a
3
i 1 2 3 4 5
d(i) 1 2 2 0 0
A sequencia de deslocamento e (1, 2, 2, 0, 0).
Denicao 73 (Deslocamento) A funcao de deslocamento para uma permu-
tacao e a funcao
d : a
1
, a
2
, ..., a
n
0, 1, 2, ..., n
9.3. ALGORITMOS 223
Seja
1
(a
i
) = a
j
, entao
d(a
i
) = d
i
=
_
0 se j i
j i se j > i
A sequencia d
1
, d
2
, ..., d
n
e chamada a sequencia de deslocamento para .
Proposicao 34 A funcao de deslocamento, d, satisfaz a desigualdade
0 d
i
n i
para i = 1, 2, 3, ..., n.
Prova: Por induc ao sobre (n i).
Etapa basica: Se n i = 0, entao, i = n,
e o ultimo elemento nao pode ser deslocado para a direito, portanto,
d(n) = 0,
e 0 d(n) 0 implica d(n) = 0. Portanto, a proposi cao e verdadeira
para n i = 0.
Etapa indutiva: Suponha que a proposicao e verdadeira para n i = k.
Entao, i = n k e 0 d(n k) k. Agora, consideremos i k = k + 1.
Isto da i = n k 1 e existe mais uma posicao disponvel na direita
de a
i
, para deslocar esse elemento. Portanto, a proposicao
tambem e verdadeira para n i = k + 1.
O problema inverso de achar uma sequencia de deslocamentos para uma
dada permutacao, e encontrar a permutacao correspondente a uma sequencia
de deslocamentos.
Algoritmo 14 Para gerar uma permutacao de uma sequencia de deslocamen-
tos.
Descricao informal: Dada uma sequencia de n objetos na ordem natural,
a
1
, a
2
, ..., a
n
n possveis posicoes vagas e uma sequencia de deslocamentos
d
1
, d
2
, ..., d
n
(0 d
i
n i)
colocar a
1
na posicao d
1
+ 1(contado da esquerda para a direita).
Se a
1
, a
2
, ..., a
i1
ja foi colocado, colocar a
i
na (d
i
+ 1)-esima posi cao va-
ga(contada a partir da esquerda).
224 CAP
ITULO 9. CONTAR
Exemplo 195 Achar a permutacao correspondente `a sequencia de
deslocamento 3,3,0,1,1,0.
1. Colocar a
1
(3+1)-esima posicao vaga.
-,-,-,a
1
,-,-
2. Colocar a
2
na (3+1)-esima posi cao vaga.
-,-,-,a
1
, a
2
,-
3. Colocar a
3
na (0+1)-esima posi cao vaga.
a
3
,-,-,a
1
, a
2
,-
4. Colocar a
4
na (1+1)-esima posi cao vaga.
a
3
,-,a
4
, a
1
, a
2
,-
5. Colocar a
5
na (1+1)-esima posi cao vaga.
a
3
, , a
4
, a
1
, a
2
, a
5
6. Colcar A
6
na (0+1)-esima posi cao vaga.
a
3
, a
6
, a
4
, a
1
, a
2
, a
5
Portanto, a permutacao e a
3
, a
6
, a
4
, a
1
, a
2
, a
5
Proposicao 35 Existe uma correspondencia uma a uma entre o conjunto de
todas as permutacoes sobre um conjunto A com n elementos e o conjunto
de todas as sequencias de deslocamentos com n termos.
Prova: O n umero de permuta coes sobre um conjunto A com n membros
e n!.
O n umero de sequencias de deslocamentos com n termos e
n (n 1) ... 2 1 = n!
da proposi cao anterior e a regra da multiplicacao para contar.
Exatamente, uma permutacao sobre o conjunto de n objetos pode ser
gerada de cada sequencia de deslocamentos com n termos. Veja o algoritmo
14.
O resultado segue.
Algoritmo 15 Para gerar uma permutacao a partir de uma sequencia de
deslocamentos.
Versao formal:
9.3. ALGORITMOS 225
Entradas: uma sequencia de deslocamentos (d
1
, d
2
, ..., d
n
).
uma permuta cao (a
1
, a
2
, ...a
n
).
Precondic oes: a sequencia de deslocamento e a permutacao tem n
membros e satisfazem as respectivas denc oes.
Sadas: uma permuta cao
_
a
1
a
2
... a
n
p
1
p
2
... p
n
_
Poscondicoes: a permuta cao (p
1
, ..., p
n
) casa com a sequencia de deslocamentos
de entrada.
As etapas no algoritmo sao descritas, primeiro, em palavras.
Metodo: Rotular as n posic oes na permutacao de 1 a n.
Para i = 1 ate n:
colocar a
i
na posicao rotulada d
i
+ 1
rerotular as posicoes seguindo a posicao d
i
+ 1
Agora, vamos detalhar as etapas no algoritmo.
Metodo : Para k = 1 a n
c(k) = k
para i = 1 a n
k d
i
+ 1
j c(k)
p
j
a
i
para m = k a n i
c(m) c(m+ 1)
Exemplo 196 Achar a permutacao de (a
1
, a
2
, ..., a
6
), correspondendo
a sequencia de deslocamentos (3,3,0,1,1,0).
Seja a permutacao
_
a
1
a
2
... a
n
p
1
p
2
... p
n
_
A seguinte tabela mostra valores de domnios sucessivos para c em
executando o algoritmo.
226 CAP
ITULO 9. CONTAR
k i
1 2 3 4 5 6 1
1 2 3 - 4 5 2
1 2 3 - - 4 3
- 1 2 - - 3 4
- 1 - - - 2 5
- 1 - - - - 6
Percorrendo as etapas do algoritmo obteremos a seguinte tabela
de valores para as variaveis.
i d
i
k c(k) j sada
1 3 4 4 4 p
4
= a
1
2 3 4 5 5 p
5
= a
2
3 0 1 1 1 p
1
= a
3
4 1 2 3 3 p
3
= a
4
5 1 2 6 6 p
6
= a
5
6 0 1 2 2 p
2
= a
6
A sada e a permutacao
_
a
1
a
2
a
3
a
4
a
5
a
6
a
3
a
6
a
4
a
1
a
2
a
5
_
Exemplo 197 Achar as permuta coes de (a
1
, a
2
, ..., a
6
) corresponden-
do `a sequencia de deslocamentos (0,2,4,0,1,0).
Solucao: A sequencia de deslocamentos e ilegal, pois d
3
= 4, con-
tradiz a proposicao 24, que estabelece que d
3
6 3.
Algoritmo 16 (Permutacoes) Para gerar todas as n-permutacoes de um con-
junto com n objetos.
Entradas: um conjunto a
1
, a
2
, ..., a
n
.
Sadas: todas as permutac oes de A.
Metodo: D (0, 0, ..., 0)
(o n-elemento, sequencia de deslocamento nula).
repita:
achar uma nova sequencia de deslocamento (algoritmo 17).
converter a sequencia na permutacao (algoritmo 17)
registrar a permuta cao
ate n! permutac oes terem sido registradas.
Algoritmo 17 Para encontrar uma nova sequencia de deslocamentos de uma
dada sequencias de deslocamentos.
9.4. EXERC
ICIOS 227
Entradas: uma sequencia de deslocamento D = (d
1
, d
2
, ..., d
n
).
Sadas: a proxima sequencia de deslocamentos na ordem do dicionario, D
.
Metodo: i n 1
enquanto d
i
= n 1 e i ,= 0:
d
i
0
i i 1
se i > 0, entao d
i
d
i
+ 1
Exemplo 198 Dada a permutacao (a
5
, a
2
, a
4
, a
3
, a
1
), gerar a proxima
permutacao usando os algoritmos 17 e 15.
Solucao: Permutacao = 524321. A sequencia de deslocamentos =
41210.
A proxima sequencia de deslocamentos = 42000. A nova permu-
tacao e 34251.
9.4 Exerccios
1. Quantos n umeros divisveis por 7 existem no conjunto dos inteiros con-
secutivos de 100 a 999?
2. Quantos membros tem a sequencia
a
n
2
, ..., a
n
, onde n 2?
Considere o caso n par e o caso n mpar, separadamente.
3. Qual e 27
o
n umero mpar apos 99?
4. Dado o conjunto
S = j Z[100 j 999
(a) Achar [S[.
(b) Quantos inteiros mpares existem em S?
(c) Quantos inteiros em S tem dgitos distintos?
(d) Quantos inteiros mpares em S tem dgitos distintos?
228 CAP
ITULO 9. CONTAR
5. Um sistema de PC tem disponvel duas especies de disco rgido, tres
tipos de telas VDU, dois teclados e tres tipos de impressoras. Quantos
sistemas distintos podem ser conseguidos?
6. O n umero 42 tem a fatorizacao prima 2 3 7. Portanto, 42 pode ser
escrito de quatro maneiras como o produto de dois fatores inteiros posi-
tivos.
(a) Em quantas maneiras 24 pode ser escrito como o produto de dois
fatores inteiros positivos?
(b) A fatorizacao em primos de um inteiro positivo n e p
1
p
2
... p
k
.
Dado que os fatores primos sao distintos, em quantas maneiras podemos
escrever n como o produto de dois fatores inteiros positivos?
7. Quantos inteiros de 1 a 1000 nao sao divisveis por 8 ou 12?
8. Quantos inteiros de 1 a 1000 nao sao divisveis por 6 ou 8?
9. Seja S um conjunto de n umeros, com quatro dgitos, formados do con-
junto de dgitos {0,2,3,5,6} permitindo-se repeticoes.
(a) Quantos n umeros estao em S?
(b) Quantos n umeros em S nao tem dgitos repetidos?
(c) Quantas daqueles na parte (b) sao pares?
(d) Quantos daqueles na parte (b) sao maior que 4000?
(e) Quantos daqueles na parte (b) sao divisveis por 5?
10. Cada caractere alfabetico e representado no codigo Morse por um se-
quencia de ate quatro pontos ou tracos. Por exemplo, b e representado
por -... e s e representado por ...
Quantos caracteres podem ser representados dessa maneira?
11. Um grafo completo e denido como um grafo simples, onde cada par de
vertices distintos e adjacente, conectado por uma aresta. O smbolo para
um grafo completo com n vertices e K
n
. Encontrar o n umero de arestas
em K
n
.
12. O grafo bipartido completo K
m,n
e um grafo simples G, no qual
V (G) = A B, A B = , [A[ = m, [B[ = n, e
9.4. EXERC
ICIOS 229
E(G) = a, b[a A, b B
Calcular o n umero de arestas em K
m,n
.
13. Quanto inteiros de 1 a 1000, inclusive, contem um 5 ou 6 na sua repre-
senta cao decimal?
14. Quantos inteiros de 1 a 1000, inclusive, nao sao divveis por nenhum dos
n umeros 5, 6 ou 8?
15. Um disco e dividido em 24 setores, cada numerado de 1 a 24, mas arran-
jados ao acaso. Mostre que existem quatro n umeros consecutivos com
soma maior que 50.
16. Quantas permutacoes podem ser feitas usando todas as letras de cada
palavra?
(a) WAGGA (b)MURRUMBURRAH (c) COONABARABRAN
17. O vencedor de uma competicao e decidido por um j uri de tres juzes.
Primeiro, os dez melhores entram e sao selecionados. Entao, um dos
juzes escolhe um vecedor dos dez melhores que entraram. Para o maior
premio ser dado, um competidor que entrar deve ser selecionado como
vencedor por, pelo menos, dois dos juzes. Calcular:
(a) O n umero de selec oes de vencedores possveis por tres juzes.
(b) O n umero de selec oes nas quais e dado o maior premio.
(c) A fracao de possbilidades nas quais o maior premio e dado.
18. Quantos inteiros de 1 a 10 000 tem uma soma de dgitos de 9?
19. Quantas strings binaria de 10-dgitos, distintas, tem seis 0s e quatro 1s?
20. Achar o coeciente de x
5
y
4
z
3
em (x 2y + 3z +w)
12
.
21. Quantas solucoes tem x+y+z = 15, onde x, y, z sao inteiros nao-negativos?
Achar o n umero de termos na expansao de (u +v +w)
15
.
22. Quantas strings binaria de 12 dgitos tem oito 0s e quatro 1s?
23. Quantos livros devem ser escolhidos dentre 21 livros de matematicas,
25 de ciencia da computacao, 21 de literatura, 15 de economia e 30 de
contabilidade, para assegurar que existem no mnimo 12 livros sobre o
mesmo assunto?
230 CAP
ITULO 9. CONTAR
24. De uma lista de 4 homens e 6 mulheres devem ser escolhidos tres gerentes.
Quantas selec oes diferentes podem ser feitas, se, no mnimo, uma pessoa
de cada sexo tem de ser escolhido?
25. Mostre que se 151 inteiros forem escolhidos de 1, 2, 3, ..., 300, entao a
escolha deve incluir dois inteiros a, b, onde a divide b ou b divide a.
26. Gerar todos os subconjuntos de a, b, c, d.
27. Achar as permutac oes geradas imediatamente apos (a
5
, a
4
, a
3
, a
1
, a
2
) pelo
algoritmo 15
Bibliograa
[1] Abramsky, S. Domain theory in logical form. In Domain Theory in
Computing Science, pages 4753. Computer Society Press of the IEEE,
1987.
[2] Benedito M. Acioly. The scott interval analysis: A new approach to
interval mathematics. Revista de Informatica Teorica e Aplicada (RI-
TA), 1996. To Appear.
[3] Benedito M. Acioly. The Scott Interval Analysis. In Marclia A. Campos;
Dalcdio M. Claudio, editor, Proceedings of the Second Workshop on
Computer Arithmetic, Interval and Symbolic Computation, pages 46.
Brazilian Computer Society (SBC), August 1996.
[4] Acioly B. & Bedregal, B. A quasi-metric topology compatible with
inclusion-monotonicity property on interval space. Reliable-Computing,
3(3), 1997. Ed.Kluwer.
[5] Acioly, Benedito. Notas em logica. Technical report, Instituto de In-
formatica, Universidade Federal do Rio Grande do Sul., Setembro 1990.
[6] Acioly, Benedito M. Computational foundations of Interval mathema-
tics. PhD thesis, Instituto de Informatica, Universidade Federal do Rio
Grande do Sul, Dezembro 1991. in Portuguese.
[7] Aczel, Peter H.G. Term declaration logic and generalized composita. In
Six Annual IEEE Symposium on Logic in Computer Science(LICS91),
pages 2230. IEEE Press, 1991.
[8] Alefeld, G. & Herzberger, J. An Introduction to Interval Computation.
Academic Press, New York, 1983.
[9] Arbib,M.A. & Manes E.G. Arrows, Structures and Functors. Academic
Press, 1975.
231
232 BIBLIOGRAFIA
[10] Asperti, Andrea & Longo Giuseppe. Categories, Types and Structures.
Massachusetts Institute of Technology, 1991.
[11] Barendregt, H. The lambda calculus. its syntax and semantics. In
Studies in Logic and Foundation of Mathematics, volume 103. North-
Holland Publishing Company, 1984.
[12] Barr, Michael & Wells, Charles. Category Theory for Computing Scien-
ce. C.A.R Hoare, Series Editor. Pretince Hall International (UK), rst
edition, 1990.
[13] Bedergal, B.R. & Acioly, B.M. Sistemas de informacao cont
iInuos. Te-
chnical Report RT-001/95, UFPe-CCEN, Depto. de Informatica, Recife,
95.
[14] Michael Beenson. Foundation of constructive Mathematics. springer-
Verlag, 1985.
[15] Beenson, M.J.ll. Formalizing constructive mathematics. why and how?
In F.Richman, editor, Constructive Mathematics. Proceedings,, number
873 in Lecture Notes in Mathematics, pages 146190, Las Cruces, New
Mexico, 1981. Springer-Verlag.
[16] Bell, J.L. Toposes and Local Set Theories. An Introduction. Number 14
in Oxford Logic Guides. Clarendon Press - Oxford, 1988.
[17] Berti, S. The Solution of an Interval Equation. 1969.
[18] Bird, Richard. Programs and Machines. An Introduction to the Theory
of Computation. John Wiley & Sons, 1976.
[19] Birko, Garret. On the structure of abstract algebras. Proceedings
Cambridge Philosophical Society, 31:433454, 1935.
[20] Erret Bishop. Foundations of Constructive Analysis. Mc-Graw Hill,
1967.
[21] C.Thomas; Hahn S.W. Bullof, Jack J.; Holyoke, editor. Foundations of
Mathematics (Symposium Papers Commemorating the Sixtiex Birth-
day of Kurt Godel, 1969.
[22] Bunge, Mario. Tratado de losoa basica. In Semantica I, volume vol
1. EDUSP, 1976.
BIBLIOGRAFIA 233
[23] Bunge, Mario. Tratado de losoa basica. In Semantica II. Interpre-
tacao e Verdade, volume vol 2. EDUSP, Sao Paulo, 1976.
[24] Burris, Stanley & Sankappanavar, H.P. A Course in Universal Algebra.
Springer-Verlag, 1981.
[25] Georg Cantor. Contributions to the foundation of the theory of trans-
nite numbers. Dover Publications.
[26] Cardelli, Luca & Wagner, Peter. On understanding types, data abstrac-
tion and polimorphism. Computing Surveys, 17(04), December 1985.
[27] Cohn, P.M. Universal Algebra. Harper & Row and John Weatherhill
Inc., 1965.
[28] Costa, M.Amoroso. In Texto 4. As Ideias Fundamentais da Matematica
e Outros Ensaios, Biblioteca do Pensamento Brasileiro. EDUSP, 1981.
[29] daCosta, Newton C.A. Introduc ao aos Fundamentos da Matematica.
HUCITEC, Sao Paulo, 3ed., edition.
[30] B.A. Davey and H.A. Priestley. An introduction to lattices and order.
Cambridge University Press, 1992.
[31] Davis, Ruth. Truth, Deduction, and Computation. Logic and Seman-
tics for Computing Science. Computer Science Press, 1989.
[32] deQueiroz, Ruy J.G.B. A proof-theoretic account of programming and
the role of reduction rules. Dialectica, 42(04), 1988.
[33] deQueiroz, Ruy J.G.B. Proof Theory and Computer Programming.
The Logical Foundations of Computing. PhD thesis, Department of
Computing, Imperial College, University of London, 1991.
[34] deQueiroz, Ruy J.G.B. & Gabbay, M. Dov. An introduction to label-
led natural deduction. Technical report, Departament of Computing,
Imperial College, University of London, September 1982.
[35] deQueiroz, Ruy J.G.B. & Maimbaum, Thomas S.E. Proof theory and
computer progamming. Zeitschrift F ur Mathematishe Logik und Grun-
dlagen der Mathematik, 36:389414, 1990.
[36] Diller A. Z. An Introduction to Formal Methods. John Wiley & Sons,
1994.
234 BIBLIOGRAFIA
[37] Domingues, H.H. & Iezzi, G.
Algebra Moderna. 2a ed. edition, 1982.
[38] Dummet, Michael. What is a theory of meaning? In Evans & John
McDowell, editor, Essays in Semantics. Claredon Press, 1976.
[39] H. Enderton. A mathematical introduction to logic. Academic Press
Inc, 1972.
[40] Bell. E.T. Men of mathematics.
[41] Ferrari, A. T. Metodologia da Pesquisa Cientca. McGraw-Hill, 1982.
[42] F.B. Feys, R.; Fitch. Dictionary of Mathematical Logic. Studies in
Logic and The Foundations of Mathematics. North-Holland, 1969.
[43] M.C. Fitting. Intuitionistic Logic Model Theory and Forcing. Studies
In Logic and the Foundations of Mathematics. North-Hollad, 1969.
[44] M. P. Fourman and D. S. Scott. Sheaves and logic. In M. P. Fourman,
C. J. Mulvey, and D. S. Scott, editors, Applications of Sheaf Theory
to Algebra, Analysis, and Topology, number 753 in Lecture Notes in
Mathematics, pages 302401. Springer-Verlag, 1979.
[45] F.W.Lawvere, editor. Toposes, Algebraic Geometry and Logic. Number
274 in Lecture Notes in Mathematics. Springer-Verlag, 1972.
[46] Gabbay, Dov M. Labelled Deductive Systems. Part 1. Oxford University
Press, 1996.
[47] Gabbay, M.Dov & de Queiroz, Ruy J.G.B. Extending the curry-howard
interpretation to linear, relevant and other resourcer logic. The Journal
of Symbolic Logic, 57(4), December 1992.
[48] Gallier, Jean. Contructive logics. Technical report, digital, Paris Re-
search Laboratory, 1991.
[49] Gallier, Jean H. Logic for Computer Science. Foundations of Automa-
tic Theorem Proving. John Wiley & Sons inc., 1987.
[50] Gentzen, G. The collected papers of gerard gentzen. In Szabo, M.E., edi-
tor, Studies In Logic And Foundations of Mathematics. North-Holland
Publishing Company, 1969.
[51] Gierz, G.; Hofmann, K.H.;Keimel, K.; Lawson, J.D.; Mislove, M.; Scott,
D.S. A Compendium of Continuous Lattices. Springer-Verlag, 1980.
BIBLIOGRAFIA 235
[52] Girard, Jean-Yves. Proof Theory and Logical Complexity, volume I.
Bibliopolis, 1987.
[53] Girard, Jean-Yves; Lafont, Yves & Taylor, Paul. Proofs and Types,
volume 7 of Tracts in Theoretical Computer Science. Cambridge Uni-
versity Press, 1989.
[54] Andrew H. Gleason. Fudamentals of Abstract Analysis.
[55] Goguen, Joseph A. Theorem Proving and Algebra. To be published,
1997. Draft of May 16, 1997.
[56] Goguen,J, et.al. Initial algebra semantics and continuous algebras. Jour-
nal of ACM, 24(1):32101, January 1977.
[57] Goldblatt, R. Topoi. The Categorial Analysis of Logic, volume 98 of
Studies in Logic and The Foundations of Mathematics. north-holland,
1984.
[58] R.L. Goodstein. Recursive Number Theory. Studies in Logic and the
Foundation of Mathematics. North-Holland, 1964.
[59] Michael J.C. Gordon. Programming Language Theory and Its Imple-
mentation. C.A.R. Hoare. Pretince-Hall, 1988.
[60] Guelli, C.A; et.al. Algebra IV. Editora Moderna ltda.
[61] Halmos, Paul R. Naive Set Theory. D.Van Nostrand Company inc.,
1960.
[62] Heijenoort, Jean Van. From frege to godel. a source book in mathema-
tical logic 1879-1931. Series Source Books in History Of The Science,
pages xii+665pp. Harvard University Press.
[63] Heijnoort, Jean Van. Logic as calculus and logic as language. Synthese,
53, 1967.
[64] Hennessy, Matthew. Algebraic Theory of Process. The MIT Press,
1988.
[65] Hindley, J. Roger & Seldin, Jonathan P. Introduction to Combinators
and -calculus.
[66] Howard, W.A. The formulae-as-types notion of construction. In J.P.
Seldin & J.R. Hindley, editor, Essays on Combinatory Logic, Lambda
Calculus and Formalism, pages xxv+606p. Academic Press, 1980.
236 BIBLIOGRAFIA
[67] Huet, Gerard, editor. Logical Foundations of Functional Programming.
Addison-Wesley, 1990.
[68] Peter T. Johnstone. Stone Spaces. Cambridge University Press, 1982.
[69] P.T. Johnstone. Stone Spaces. Cambridge University, 1982.
[70] Johnstone, P.T. Stone Spaces. Cambridge University Press, 1982.
[71] Robert H. Kasriel. Undergraduate Topology.
[72] Kleene, Stephen Cole. Mathematical Logic. John Wiley & Sons, Inc.,
1967.
[73] Kneale, William & Kneale, Martha. O Desenvolvimento da Logica.
Fundacao Calouste Gulbenkian, 1991.
[74] G. Kreisel. Elements of mathematical logic (model theory). In Studies in
Logic and The Foundation of Mathematics. North-Holland Publishing
Company, 1971.
[75] Lambeck,J.& Scott,P.J. Introduction to Higher Order Categorical Lo-
gic. Cambridge University Press, 1986.
[76] P.D. Lax. Calculus with application and computing.
[77] Leisenring, A.C. Mathematical Logic and Hilberts -Symbol. MacDo-
nald Technical and Scientic, 1969.
[78] Lipschutz, Seymour. Teoria dos Conjuntos. AO Livro Tecnico S.A.,
1968.
[79] Manes, Ernest G. & Arbib, Michael A. Algebraic Approaches To Pro-
gram Semantics. Springer-Verlag, 1986.
[80] Manzano, Maria. Teoria de Modelos. Alianza Universidad Textos, 1989.
[81] Martin-Lof, Per . Notes on Constructive Mathematics. Almqvist &
Wiksell, 1968.
[82] Martin-Lof, Per. Constructive mathematics and computer program-
ming. In J.Tos, H.Pfeier & K.P.Pdewski L.J. Cohen, editor, Logic,
Methodology and Philosophy of Science, number VI. North-Holland,
1982.
[83] Martin-Lof, Per. Intuitionistic Type Theory. Bibliopolis, 1984.
BIBLIOGRAFIA 237
[84] Martin-Lof, Per. Truth of a proposition, evidence of a judgement, vali-
dity of a proof. Synthese, (73):407420, 1987.
[85] Moore, Ramon E. Interval Analysis. Pretince Hall, New Jersey, 1966.
[86] Moore, Ramon E. Methods and Applications of Interval Analysis.
SIAM, 1979.
[87] Mosses, Peter D. Handbook of Theoretical Computer Science, chap-
ter 11, pages 577674. 1990.
[88] Nordstrom, Bengt ; Peterson, Kent & Smith, Jan M. Programming in
Martin-Lofs Type Theory. An Introduction. Clarendon Press. Oxford,
1990.
[89] Paulson, L. Tracts in theoretical computer science. In Logic and Com-
putation. Interactive Proof with Cambridge LCF, volume 2. Cambridge
University Press, 1987.
[90] Prawitz, Dag. Ideas and results in proof theory. In Fenstad, J.E., editor,
Proceedings of The Second Scandinavian Logic Symposium, pages 235
307, Amsterdam, 1971. North-Holland.
[91] Prawitz, Dag. Towards a foundation of general proof theory. In Proce-
edings ,of The Fourth International Congress For Logic, Methodology
And Philosophy of Science, pages 225250. North-Holland Publishing
Company, 1971.
[92] Prawitz, Dag. On the idea of a general proof theory. Synthese, (27):63
77, 1974.
[93] Prior, A.N. The runabout inference-ticket. Analysis, (21):3839, 1960.
[94] Interval96, 1996.
[95] Revesz. Lambda-Calculus, Combinators and Functional Programing.
Cambridge Tracts in Theoretical Computer Science. Cambridge Univer-
sity Press, 1988.
[96] Reynolds, John C. Polymorphism is not set theoretic. Semantics of
Data Types, page 184, June. International Symposium, France.
[97] Reynolds, John C. Types, abstraction and parametric polimorphism.
Information Processing, 1983.
238 BIBLIOGRAFIA
[98] Ross, Keneth A. & Wright, Charles R.B. Discrete Mathematics. Pre-
tince Hall, 1988.
[99] Walter Rudin. Principles of Mathematical Analysis. McGraw-Hill,
1953.
[100] Santiago, Regivan. Toward a constructive logic to real analysis. Masters
thesis, Universidade Federal de Pernambuco, March 1995. In Portugue-
se.
[101] Santiago, Regivan & Acioly Benedito. Intervals as real numbers speci-
cation. In Interval96, October 1996.
[102] Santiago, Regivan & Acioly Benedito. A numerical approximation logic.
In Workshop in Arithmetic, Interval and Symbolic Computation, July
1996.
[103] Santiago, Regivan & Acioly, Benedito. Toward a logic for numerical
approximations. Revista de Informatica Teorica e Aplicada, 1996. To
appear.
[104] Santiago, Regivan & deQueiroz, Ruy J.G. Toward a proof theory for
proofs by induction. In 1st. Workshop LaLLIC, pages 149164, July
1994.
[105] Santiago, Regivan & deQueiroz, Ruy J.G. Notas em logica e topoi.
Manuscript, July 1996.
[106] Dana S. Scott. Domains for denotational semantics. In M. Nielsen and
E. M. Schmidt, editors, Automata, Languages and Programming, volu-
me 140 of Lecture Notes in Computer Science, pages 577613, Berlin,
1982. Springer-Verlag.
[107] Scott, Danna. Continuous lattices. In F.W.Lawvere, editor, Toposes,
Algebraic Geometry and Logic, number 274 in Lecture Notes in Mathe-
matics, pages 97136. Springer-Verlag, 1972.
[108] M.B. Smith. Topology. Handbook of Logic in Computer Science, 1:641
751, 1992.
[109] Smorynski, C.A. Applications of kripke models. In A.S. Troelstra, edi-
tor, Mathematical Investigation of Intuitionistic Arithmetic and Ana-
lysis, number 344 in Lecture Notes in Mathematics, chapter V, pages
324391. springer-Verlag, 1973.
BIBLIOGRAFIA 239
[110] Spivey, J.M. Understanding Z.A Specication Language and its Formal
Semantics. Cambridge University Press, 1988.
[111] Spivey, J.M. The Z Notation. A Reference Manual. C.A.R. Hoare
Series. Pretince Hall, 1992.
[112] Sundholm, Goran. Proof theory and meaning. In Gabbay, Dov &
Guenthner, F., editor, Handbook of Philosophical Logic, pages 471506.
D.Reidel Publishing company, 1986.
[113] Thompson, S. An introduction to type theory and constructive mathe-
matics. November 1987.
[114] A.S. Troelstra. Mathematical Investigation of Intuitionistic Arithmetic
and Analysis. Lecture Notes In Mathematics. Springer-Verlag, 1973.
[115] Troelstra, A.S. Principles of Intuitionism. Lecture Notes In Mathema-
tics. Springer-Verlag, 1969.
[116] Troelstra, A.S. & Van Dalen, Dirk. Constructivism in mathematics.
In Studies in Logic and the Foundations of Mathematics, volume II.
North-Holland, 1988.
[117] Dirk Van Dalen. Intuitionisc logic. Handbook of Philosophical Logic, 3,
1986.
[118] Van Dalen, Dirk. Intuitionistic logic. In Gabbay, Dov & Guenthner
F., editor, Handbook of Philosophical Logic, volume III, chapter III.4,
pages 225339. D. Reidel Publishing Company, 1986.
[119] Vickers, S. Topology via logic. Number 5 in Cambridge Tracts in Theo-
retical Computer Science. Cambridge University Press, 1989.
[120] David A. Watt. Programming Concepts and Paradigms. C.A.R. Hoare.
Pretince-Hall, 1990.
[121] Wechler, Wolfgang. Universal Algebra For Computer Scientists.
Springer-Verlag, 1992.
[122] Woodcock,J. & Davies, J. Using Z.Specication, Renement, and Proof.
Pretince Hall, 1996.
[123] Martin M. Zuckerman. Sets and Transnite Numbers. Collier Macmil-
lian, 1974.