239
MATEM ´ ATICA DISCRETA BENEDITO MELO ACI ´ OLY FTC 2001

MATEMÁTICA DISCRETA -Benedito Melo

Embed Size (px)

Citation preview

Page 1: MATEMÁTICA DISCRETA -Benedito Melo

MATEMATICA DISCRETA

BENEDITO MELO ACIOLY

FTC 2001

Page 2: MATEMÁTICA DISCRETA -Benedito Melo

2

Page 3: MATEMÁTICA DISCRETA -Benedito Melo

Conteudo

1 Cinco algoritmos importantes nos inteiros 51.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.2 Algoritmos para os inteiros . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2 Algoritmos de mundanca de base 192.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.2 Os inteiros em diferentes bases . . . . . . . . . . . . . . . . . . . . . . . . . 202.3 Representacao dos inteiros num computador . . . . . . . . . . . . . . . . . 272.4 Numeros reais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.5 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3 Conjuntos, Funcoes e Relacoes 433.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.2 Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.3 Funcoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503.4 Relacoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.5 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

4 Logica 714.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714.2 Raciocinando com hipoteses logicas . . . . . . . . . . . . . . . . . . . . . . 804.3 Predicados & Quantificadores . . . . . . . . . . . . . . . . . . . . . . . . . 844.4 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

5 Provas 915.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915.2 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

6 Recursao 1116.0.1 EXERCICIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

3

Page 4: MATEMÁTICA DISCRETA -Benedito Melo

4 CONTEUDO

7 Estruturas Algebricas 1357.1 Algebras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1357.2 Estruturas ordenadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1527.3 Corpos finitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1617.4 EXERCICIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

8 Grafos e arvores 1678.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1678.2 Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1678.3 Arvores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1768.4 Arvores geradoras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1858.5 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

9 Contar 1959.1 Tecnicas de contar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1969.2 O binomial e teoremas multinomiais . . . . . . . . . . . . . . . . . . . . . . 2139.3 Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

9.3.1 Permutacoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2219.4 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

Bibliografia 231

Page 5: MATEMÁTICA DISCRETA -Benedito Melo

Capıtulo 1

Cinco algoritmos importantes nosinteiros

1.1 Introducao

A seguir apresentaremos as solucoes algorıtmicas para cinco problemas envolvendo numerosinteiros. Deveremos aprender como ler e usar esses algoritmos, conhecer os fatos apre-sentados sobre os inteiros, primos e o maior dos divisores comuns. Num nıvel mais alto,deveremos ser capazes de ler e usar algoritmos similares quando encontra-los e projetarnossos proprios algoritmos para resolver problemas sobre os inteiros.

1.2 Algoritmos para os inteiros

Um computador eletronico moderno(digital) computa funcoes no mais baixo nıvel, usandoas mudancas 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. Naoteremos que saber muito mais sobre como isso e feito, mas neste nıvel basico uma compo-nente da maquina tem dois estados que podem ser tomados como representando os dıgitos0, 1, ou os rotulos logicos verdadeiro(t), falso(f), a nossa conveniencia. Uma estruturamatematica construıda neste fundamento digital e a estrutura dos numeros inteiros e porisso comecaremos com ela aqui. Uma maneira natural de instruir o computador paraefetuar uma tarefa e por meio de um algoritmo, que para nos significa um procedimentopasso a passo para realizar uma tarefa. Para um estudante de computacao um algoritmoesta entre um problema a ser resolvido e o programa para resolve-lo. Para um estudantede matematica um algoritmo representa uma solucao construtiva para um problema emoposicao a um argumento de que a solucao existe. Davis e Hersh1 discute o contraste

1Davis, P.J.and Hersh, R., (1981), The Mathematical Experience, Havester.

5

Page 6: MATEMÁTICA DISCRETA -Benedito Melo

6 CAPITULO 1. CINCO ALGORITMOS IMPORTANTES NOS INTEIROS

entre a abordagem algorımica e a abordagem dialetica(baseada em argumentos) para omatematico, num artigo bastante legıvel.

Entretanto, combinar algoritmos e inteiros numa primeira introducao tem um signifi-cado um pouco mais profundo que a importancia desses assuntos por si so. Por toda aescola secundaria um objetivo foi inserir os inteiros dentro do sistema de numeros reais,usando os mesmos sımbolos para as operacoes de adicao, multiplicacao, subtracao e di-visao para enfatizar a ideia. Uma observacao mais acurada nos algoritmos para efetuaressas operacoes deixa claro que existem diferentes sistemas de numeros que precisam sermanipulados de maneiras diferentes por maquinas como o computador.

A abordagem algorıtmica e encontrada nos primodios da matematica, tendo sido sem-pre uma de suas partes importante. Os algoritmos sao importantes para nos porque elesnos dao um tipo de solucao a um problema que pode ser convertida num programa paraum computador. Para escrever um programa ou entende-lo qundo ele foi escrito por outrapessoa e necessario entender seu objetivo e a sua estrutura. Um algoritmo representa aestrutura de um programa deixando de fora os detalhes desnecessarios. O processo decriar um programa a partir de um algoritmo e chamado sua implementacao.

Nao existe um metodo universalmente aceito de escrever algoritmos. Usaremos maisde uma maneira ao longo de nosso curso. Usaremos a linguagem chamada pseudocodigo,tao proxima da linguagem natural quanto possıvel. Este tipo especial de linguagem edevido ao fato de que algumas instrucoes basicas ocorrem tao frequentemente que seriautil reconhece-las como uma forma padrao.

Comentario historico: O nome algoritmo deriva do matematico arabe Mohammedal-Khwarismi(825 d.c.), que escreveu um livro sobre aritmetica no qual e dado uma expli-cacao completa sobre os numerais Hindus. O livro foi traduzido para o Latim(De NumeroIndorum) e tornou-se conhecido na Europa. O esquema de numeracao usando numeraishindus veio a ser chamado algorismi, como uma corruptela de al-Khwarismi. O sigificadode algoritmo e agora ”qualquer especie de procedimento”. Em computacao, muitos auto-res(por exemplo, Knuth, 1969, p.4)2 enfatiza que a aplicacao do algoritmo para dados deentrada validos deve terminar num numero finito de etapas.

Divisao inteira

O conjunto dos numeros inteiros, {...,−3,−2,−1, 0, 1, 2, 3, ...}, denotado por Z, e bastanteconhecido. Sabemos os significados dos sımbolos “ = ”, “ < ”, “ ≤ ” e “ ≥ ” definidossobre os inteiros. Por exemplo, sabemos se “a = b” e verdadeiro ou falso para qualquerpar de inteiros a, b em Z. Entretanto, pode nao ser bem claro o que queremos significarcom divisao. Suponha que uma pessoa ou uma maquina foi instruıda para dividir a porb.

Para a = 12, b = 3 nao existe duvida o que significa.

2Knuth,D.E.,(1969), The art of Computer Programming, Vol1, Fundamental Algorithms, rev. edn,Addison-Wesley.

Page 7: MATEMÁTICA DISCRETA -Benedito Melo

1.2. ALGORITMOS PARA OS INTEIROS 7

Para a = 13, b = 5 nao esta claro se queremos como resposta 2.6 ou 2, com resto 3. “Oproblema fundamental” nao e “o que e correto” mas “como a intencao deve ser tornadaclara”. Uma maneira de fazer isso e definir sımbolos diferentes para cada operacao quefor necessaria. Outro metodo seria usar o mesmo sımbolo significando coisas diferentes,declarando-os como tendo comportamentos diferentes para tipos de numeros diferentes.Exploraremos a tarefa de providenciar instrucoes precisas observando a divisao de inteiros.

O processo comum de dividir um inteiro a por um inteiro b da quociente q e resto r.Os fatos estao contidos no seguinte teorema.

Teorema 1 (Teorema da divisao). Para todos os inteiros a, b, (b 6= 0), existem inteirosq, r, unicos tais que

a = b ∗ q + r e 0 ≤ r < |b|.A convencao em matematica e nao usar um sımbolo especial, como ‘*’, para a mul-

tiplicacao. Por isso escreveremos ‘bq’, significando “b multiplicado por q”. Onde fornecessario maior clareza usaremos ‘×’ como multiplicacao, como, por exemplo, em 3× 4.Os sımbolos “|b|” sao usados para indicar valor abosoluto de b, como em | − 7| = |7| = 7.

E uma tradicao chamar o teorema da divisao de “algoritmo da divisao”. Entretanto,o teorema nao identifica um procedimento passo a passo para obter q, r de a, b. Dessemodo, no nosso contexto, nao e apropriado chamar um teorema de algoritmo.

Problema 1: Como deveremos calcular o resto e o quociente da divisao de um in-teiro positivo por outro? Existem varias maneiras de resolver este problema, dependendode quais funcoes estao disponıveis em nossa calculadora ou computador. Entretanto, aoperacao de subtracao seguramente esta presente em qualquer maquina que manipulainteiros, por isso basearemos o seguinte algoritmo na ideia de que divisoes de inteiroscorrespondem a repeticao de subtracao.

algoritmo 1(Divisao inteira positiva) Calcular o resto e o quociente da divisao deum inteiro positivo a por um inteiro positivo b.

No algoritmo abaixo sao dados valores iniciais as variaveis a e b, pela entrada a partirde alguma fonte externa, talvez por meio de um teclado ou talvez de algum programa decomputador que chamou este algoritmo, com a e b contendo os valores iniciais atraves daaplicacao. Sao atribuıdos valores iniciais as variaveis q, r durante a aplicacao do algoritmoe, claro, esses valores podem ir se alterando repetidamente enquanto a aplicacao continua.Cada alteracao diz-se uma “atualizacao” do valor da variavel.

• Entradas: a,b, inteiros, a > 0 e b > 0.

• Saıdas: q, r, inteiros. O quociente q e o resto r devem satistifazer a definicao contidano teorema acima.

Page 8: MATEMÁTICA DISCRETA -Benedito Melo

8 CAPITULO 1. CINCO ALGORITMOS IMPORTANTES NOS INTEIROS

• Metodo:

1. Dar a q o valor 0.

2. Dar a r o valor a.

3. Enquanto r ≥ b :

4. Adicione um ao valor de q

5. Subtraia b do valor de r.

As linhas estao numeradas para ajudar na explicacao do funcionamento do algoritmo.Nao e comum enumerar as linhas num algoritmo. As instrucoes nas linhas 1 e 2 saoefetuadas uma apos a outra, na sequencia obvia. Observe que atribuindo esses valores aq e r satisfizemos a parte da condicao de saıda(a=bq+r). A proxima instrucao esta nalinha 3 que e um teste para decidir se o r esta fora do intervalo requerido para o resto.Se a sentenca “r ≥ b” for verdadeira, as instrucoes da linhas 4 e 5 sao efetuadas e entao oalgoritmo retorna para o teste “enquanto”, na linha 3. Se a sentenca “r ≥ b” for falsa, oalgoritmo termina. Caso contrario, a sequencia linha 4, linha 5, linha 3 e repetida. Estastres instrucoes formam o que e conhecido por “laco”. Cada vez que o algoritmo passapelo laco o valor de r e reduzido de tal modo que apos um numero(finito) de etapas doteste a linha 3 falha, terminando o algoritmo com o valor correto para o quociente e oresto armazenado em q e r, respectivamente.

Exemplo 1 Achar o quociente e o resto quando 33 e dividido por 7.Identificar as variaveis no algoritmo 1, acima, e listar seus valores numa tabela como

fizemos no algoritmo.a b q r (r ≥ b)

valores iniciais 33 7 0 33 tapos laco um 1 26 t

dois 2 19 ttres 3 12 t

quatro 4 5 f

Quando 33 e dividido por 7 o quociente e 4 e o resto e 5.A expressao (r ≥ b) pode ser visto como os valores verdadeiro(t) ou falso(f) e por

nenhum outro. Esta expressao e chamada uma expressao booleana.

Problema 2: Qual e o quociente e o resto quando um inteiro e dividido por outro,sem nenhuma restricao de sinal?

Existem quatro possibilidades a serem consideradas, tomando a positivo ou negativocom b positivo ou negativo. Colocaremos comentarios em italicos no algoritmo para ajudarseu entendimento.

Page 9: MATEMÁTICA DISCRETA -Benedito Melo

1.2. ALGORITMOS PARA OS INTEIROS 9

Algoritmo 2 (Divisao inteira): Achar o quociente e o resto quando um inteiro a fordividido por um inteiro b, onde b 6= 0.

• Entradas: a, b, inteiros, onde b 6= 0.

• Saıdas: q, r inteiros. O quociente q e o resto r, devem satisfazer a condicao

a = bq + r e 0 ≤ r < |b|.

• Metodo:

1. Dado q com valor inicial 0.

2. Dado r com valor inicial a.

Caso 1 : a ≥ 0 (a positivo ou 0)

enquanto r ≥ |b|

substitua r por r − |b|se b > 0 entao incremente q de 1caso contrario(se b < 0 entao) decremente q de 1.

Caso 2: a < 0

enquanto r < 0

substitua r por r + |b|se b > 0 entao decremente q de 1caso contrario(se b < 0 entao) incremente q de 1

Exemplo:Aplicar o algoritmo da divisao inteira para -15 dividido por -7.O valor de a e -15. O valor de b e -7. O algoritmo seleciona o caso 2(a < 0)) e, apos

o “se”, seleciona o ramo “caso contrario” (b < 0).a b q r (r < 0)

-15 -7 0 -15 t1 -8 t2 -1 t3 6 f

Quando -15 for dividido por -7 o quociente e 3 e o resto e 6.O algoritmo 2 e mais complicado que o algoritmo 1. Faz sentido checar que ele, de

fato, fornece as saıdas corretas.

Page 10: MATEMÁTICA DISCRETA -Benedito Melo

10 CAPITULO 1. CINCO ALGORITMOS IMPORTANTES NOS INTEIROS

Introduzimos uma assertiva chamada precondicao para checar se a entrada esta corretae uma poscondicao para checar se a saıda esta correta para uma dada entrada.

Como a, b, q e r sao inteiros, a precondicao para o algoritmo da divisao e a expressao“b 6= 0” e a poscondicao para o algoritmo e a expressao “a = bq + r e 0 ≤ r ≤ |b|”, ondeq, r tem seus valores finais de saıda. De hora em diante escreveremos para o algoritmo dadivisao:

precondicao = (b 6= 0)poscondicao = (a = bq + r e 0 ≤ r < |b|)

A precondicao e testada nas variaveis de entrada a, b antes do algoritmo ser aplicado.A poscondicao e testada usando os valores das variaveis de entrada que se verificam antesda aplicacao do algoritmo e os valores da variaveis de saıda q, r depois do algoritmo seraplicado. Devemos tomar algum cuidado com a explicacao acima, pois as variaveis(porexemplo, q e r) alteram seus valores durante a execucao do algoritmo. Cada funcaode condicao e definitivamente verdadeira ou definitivamente falsa no momento de suaavaliacao.

Agora, se para cada par de entradas possıveis a, b a precondicao for verdadeira e apos aaplicacao do algoritmo a correpondente poscondicao for verdadeira, entao o algoritmo deveestar correto. De fato, nao podemos checar todas as infinitas possibilidades de entradas.Entretanto, se no mınimo checarmos as quatro possibilidades de a positivo e negativocom b positivo e negativo, aumentara nossa confianca no algoritmo. Se o algoritmo forimplementado como um programa de computador, entao as condicoes podem ser avaliadasautomaticamente cada vez que o programa for executado.

Para o exemplo acima no qual a = −15, b = −7:

precondicao(−15,−7) = (−7 6= 0)poscondicao(−15,−7, 3, 6) = ((−15 = −7 ∗ 3 = 6) e (0 ≤ 6 < 7))

= t

Exempo: O algoritmo da divisao inteira produz saıda q = −3, r = 6 da entradaa = −15, b = 7. Mostre que o algoritmo satisfaz sua especificacao neste caso.

Temos de mostrar que, se os dados de entrada satisfizerem a precondicao e o algoritmoproduzir a saıda estabelecida, entao a poscondicao sera verdadeira. Portanto:

precondicao(−15, 7) = (7 6= 0)= t

poscondicao(−15, 7,−3, 6) = ((−15 = 7 ∗ (−3) + 6 e (0 ≤ 6 < 7))= t

Page 11: MATEMÁTICA DISCRETA -Benedito Melo

1.2. ALGORITMOS PARA OS INTEIROS 11

Obs 1: Em ultima instancia, gostarıamos de ser capazes de provar que o algoritmo dadivisao de inteiros esta correto para todas as suas entradas validas. Isto e, para inteirosa, b:

se precondicao(a,b) for verdadeira e o algoritmo aplicado a (a, b) produzir a saıda (q, r),entao a poscondicao(a,b,q,r) tambem sera verdadeira.

Para atingir esse objetivo estudaremos logica e provas matematicas mais adiante.Obs 2: Algumas linguagens de programacao contem operadores que calculam q e r

automaticamente. Por exemplo, em C++ q e calculado por “a/b” e r por “a%b”.

Primos

Definicao 1 (Divisıvel) Um inteiro b diz-se divisıvel por um inteiro a se e somente seb = qa para algum inteiro q. Dizemos que a e um fator de b.

Definicao 2 (primos) Um inteiro positivo p e primo se ele for diferente de 1 e so fordivisıvel por 1 e ele proprio.

Os inteiros positivos maiores que 1 que nao sao primos sao chamados compostos. Osprimeiros inteiros positivos primos sao: 2, 3, 5, 7, 11, 13, 17, 19, 23,... Qualquer inteiropositivo maior que 1 ou e primo ou pode ser fatorado em primos, por exemplo,

128 = 27 45 = 32 ∗ 5.

Por experiencia, sabemos que os fatores primos de um numero sao sempre os mesmos,nao importa como estabelecemos o processo de fatorizacao. E possıvel provar que afatorizacao de um composto em primos e unica.

Teorema 2 (Teorema fundamental da aritmetica) Todo numero inteiro positivo maiorque 1 pode ser expresso como um produto de primos. Esta expressao e unica a menos daordem dos fatores.

A frase “produto de primos” inclui a possibilidade de um unico primo.O problema abaixo e um bom exemplo de um problema de decisao. Esses tipos de

problemas ocorrem com frequencia. O objetivo e determinar se uma dada assertiva everdadeira ou falsa. Por isso definimos uma variavel booleana no algoritmo(neste caso avariavel primo).

Problema 3. O inteiro positivo n e primo?Esta questao parece muito simples para exigir o uso do computador. Se o numero for

muito grande certamente que o computador sera de bastante ajuda. Fazendo a pergunta“21509 e um primo? ou “432521“ e um primo? E claro que usando uma calculadora elaajuda a organizar a sequencia de calculos, minimizando o trabalho. Poderıamos testar adivisibilidade para n ate encontrarmos um fator ou todos os fatores possıveis terem sidostentados. Entretanto, cada teste da divisibilidade nos fornece dois fatores.

Page 12: MATEMÁTICA DISCRETA -Benedito Melo

12 CAPITULO 1. CINCO ALGORITMOS IMPORTANTES NOS INTEIROS

Se 2 nao e um fator, entao n/2 tambem nao e. Qualquer fator possıvel esta agoraentre 2 e n/2. O intervalo contendo os fatores possıveis encolhe sempre que cada testefalha, ate a ultima possibilidade ser testar

√n, se tal numero for um inteiro.

A sequencia de fatores possıveis a tentar e portanto 2, 3, ...b√nc, e se todos essesfalharem podemos garantir que o numero e primo.

O sımbolo b c denota a funcao floor, definida por

floor(x) = bxc =

{x, se x for inteirocaso contrario, o maior inteiro menor que x

Exemplos: b3.9c = 3, b−3.2c = −4, b5c = 5.Algoritmo 3 (Teste de primo). Para testar se um inteiro n e primo.

• Entrada: um inteiro n. O inteiro a ser testado.

A precondicao e n > 2.

• Saıda: primo, booleano.

A poscondicao e (primo =

{t se e primo,f caso contrario.

)

• Metodo:

Inicializar a com 2.

(a e o inteiro que esta sendo testado como um possıvel fator)

Inicializar primo com t.

enquanto a ≤ √n e primo for t:

se a divide n exatamente entaodar a primo o valor f

caso contrarioincrementar o valor de a por 1

O algoritmo esta correto? ele e eficiente? E facil de entende-lo?Observe tambem que o algoritmo fornece o resultado correto para n = 2, mas esse

valor foi excuıdo da precondicao. Alterando a precondicao para n ≥ 2, seria possıvelfornecer 2 como entrada. A nova precondicao diz-se “mais fraca” que a original, poisela adimite mais entradas validas. So poderemos mostrar que um algoritmo esta corretoestabelecendo que ele fornece os resultados corretos para todas as entradas. Poderemosmostrar 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 eficiencia.

Page 13: MATEMÁTICA DISCRETA -Benedito Melo

1.2. ALGORITMOS PARA OS INTEIROS 13

A questao da legilibilidade tem um conteudo subjectivo, embora de grande importanciapara o profissional da computacao. Veremos algoritmos escritos de muitas maneiras, emdiferentes 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 deseus fatores primos, repetindo os fatores quando apropriado. Por exemplo, 12 tem comofatores primos 2, 2, 3. E necessario testar a divisibilidade de n, para os numeros entre 2 e√

n, em ordem. Entretanto, quando um fator e encontrado, continuamos dividindo-o poresse fator, enquanto tivermos obtendo sucesso. Este procedimento acessegura que cadafator encontrado e primo. Por exemplo, 12 nao e encontrado como um fator primo de 42,pois todos os fatoers 2 e 3 terao sido removidos antes que o teste para 6 seja aplicado.

As variaveis necessarias para este algoritmo sao “o divisor de tentativa”, denotadopor a e “o quociente que fica apos dividir os sucessivos divisor de tentativa” , denotadopor q. Em computacao e comum dar nomes autoexplanatorios as variaveis tais comodivDeTentativa e quociente.

Algoritmo 4(Fatores primos). Achar os fatores primos de um inteiro maior que 1.Abaixo descrevemos o algoritmo para fatores primos.

• Entradas: um inteiro n.

• Precondicoes: n > 1,

• Saıdas: Uma lista de inteiros f = [f1, ..., fk].

• Poscondicoes: cada um dos fi’s e primo e n = f1 ∗ ... ∗ fn.3

• Metodo:

Seja f a lista vazia, [ ]

Atribua a q o valor n,

(q e o quociente apos a mais recente divisao).

Atribua a a o valor 2.

(a e o divisor tentativa corrente)

3Observe que os fi’s nao sao necessariamente distintos.

Page 14: MATEMÁTICA DISCRETA -Benedito Melo

14 CAPITULO 1. CINCO ALGORITMOS IMPORTANTES NOS INTEIROS

Enquanto a ≤ √q:se q for disıvel por a entao

coloque f em aatribua a q o valor q/a

Caso contrarioincremente a de 1

Coloque f em q

Exemplo: Achar os fatores primos de 60 usando o algoritmo 4.

n f q a a ≤ √q ramo60 [ ] 60 2 t ramo 1

[2] 30 2 t ramo 1[2,2] 15 2 t ramo 2[2,2] 15 3 t rama 1

[2,2,3] 5 3 f saıda do laco

f = [2, 2, 3, 5]

O maximo divisor comum

Cometario historico. Euclides viveu acerca de 300 anos antes de Cristo. Ele organizoua matematica Grega classica em treze livros chamado Os Elementos. Seu algoritmo para omaximo divisor comum, dado abaixo, esta no livro VII. Euclides estabeleceu a tradicao deconstruir uma sequencia logica de teoremas ou proposicoes fundamentados em axiomase definicoes. Os Elementos e o sistema de raciocınio axiomatico usado nele teve umaimensa influencia no desenvolvimento do pensamento matematico, particularmente emprova matematica.

O maximo divisor comum de dois numeros inteiros m e n e o maior inteiro que divideambos. O maximo divisor comum e definido para todos os pares de inteiros em que ambosnao sejam nulos. A notacao usual e mdc(m,n).

Por exemplo,

(1) mdc(91, 13) = 13, (2) mdc(−3,−6) = 3, (3) mdc(8, 0) = 8

Problema 5. Qual e o maximo divisor comum de dois inteiros m e n, nao nulos?

Se m 6= 0, mdc(m, 0) = |m| = mdc(0,m).Se m 6= 0 e n 6= 0 entao o mdc(m,n)=mdc(n,m)=mdc(|m|, |n|). Portanto, sera bas-

tante achar um algoritmo para mdc(m,n), onde m ≥ n ≥ n > 0.

Page 15: MATEMÁTICA DISCRETA -Benedito Melo

1.2. ALGORITMOS PARA OS INTEIROS 15

Uma abordagem factıvel para este problema seria comparar a fatorizacao em primosde m e n, usando o algoritmo 4. No entanto, existe disponıvel um algoritmo muito maiseficiente.

Algoritmo 5(Euclides). Achar o maximo divisor comum de dois inteiros positivos.

• Entrada: m, n inteiros.

• Precondicoes: m ≥ n > 0.

• Metodos: Dado a com o valor de m e b com o valor de n. Calcular r, o resto, quandoa e dividido por b.

Enquanto r 6= 0 :

atribua a b o valor a

atribua a r o valor b

recalcule r, o resto, quando a e dividido por b

atribuir a d o valor de b.

• Saıdas: inteiro d.

• Poscondicoes: d divide m e d divide n e se c divide m e n, entao c divide d.

Exemplo: achar o mdc de 2436 e 1015.As etapas sao:a b r r=02436 1015 406 f1015 406 203 f406 203 0 t

Portanto, o mdc(2436, 1015) = 203

A poscondicao para o algoritmo de Euclides

A poscondicao para o algoritmo de Euclides e difıcil de aplicar diretamente. Embora asaıda d seja facil de checar, como saberemos que ela e o mdc? Como provaremos que oalgoritmo termina corretamente? A chave e que no fim de cada passagem pelo laco, o valorde mdc(a,b) esta inalterado, embora a e b tenham se alterados. A identificacao de taispropriedades invariantes e muito importante na prova de que o laco opera corretamente.Daremos a seguir a prova tradicional do algoritmo de Euclides.

Page 16: MATEMÁTICA DISCRETA -Benedito Melo

16 CAPITULO 1. CINCO ALGORITMOS IMPORTANTES NOS INTEIROS

Prova do algoritmo de Euclides:

A prova de um algoritmo deve convencer ao leitor de que ele termina corretamente, numnumero finito de etapas.

O algoritmo requer uma sequencia de divisoes inteiras(etapas 1, 3). Denote os su-cessivos restos por r1, r2 ... e os quocientes por q1, q2, .... Por esse meio evitamosa possibilidade de confusao que pode ser causada pelo fato de que a e b alteram seusvalores ao longo do processo.

Para provar que o algoritmo esta correto e preciso duas coisas. Devemos mostrar queele termina e que termina com o mdc correto.

Terminacao mostra que o algoritmo termina.

Pelo teorema da divisao(teorema 1) temos:

m = n ∗ q1 + r1 e 0 ≤ r1 < n

n = r1 ∗ q2 + r2 e 0 ≤ r2 < r1

r1 = r2 ∗ q3 + r3 e 0 ≤ r3 < r2

....

rj−2 = rj−1 ∗ qj + 0

Tomando todas as desigualdades temos n > r1 > r2..., de modo que esta e umasequencia decrescente de inteiros nao megativos e, portanto deve atingir zero. Su-ponha que isto acontece apos j divisoes. Entao, rj = 0, e assim o algoritmo terminacom a variavel d igual a rj−1.

Terminacao correta. Mostrar que rj−1 e o mdc de m e n.4

Como o mdc(m,n) divide m e n, pelas as equacoes do item 1, o mdc(m,n) tambem divider1. Portanto, o mdc(m,n) divide mdc(n,r1).

Analogamente, dessas equacoes mostramos que o mdc(n,r1) divide m e, portanto, dividemdc(m,n).

Portanto,

mdc(m,n) = mdc(n, r1) = mdc(r1, r2) = ... = mdc(rj−1, rj) = rj−1

que mostra que o algoritmo termina corretamente.

4A prova depende de mostrar que, embora a e b se alterem durante o processo de execucao doalgoritmo, o mdc(a,b) retorna o mesmo valor no fim de cada passo no laco. Dizemos que esta variavel eum invariante do laco.

Page 17: MATEMÁTICA DISCRETA -Benedito Melo

1.3. EXERCICIOS 17

1.3 Exercıcios

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 precondicao e a poscondicao.

2. Qual e o maior numero que deve ser testado como um fator possıvel, antes que sejacerto que 1987 e primo?

3. Determine se 11729 e primo.

4. Um numero perfeito e aquele para o qual a soma de todos os seus fatores menoresque ele e igual a este numero. Portanto, 6 e um numero perfeito. De fato, 1, 2 e 3sao fatores de 6 cuja soma e 6. Construir um algoritmo para testar se um numeroe perfeito.

5. Achar o maximo divisor comum de 3589 e 999, usando o algoritmo de Euclides. Olimite superior para o numero de divisoes exigidas e

b2log2999c.

Calcule este limite superior.

6. Use o algoritmo 4, dos fatores primos, para achar os fatores primos de 61 e 64. Quaisdessas entradas faz mais uso do laco enquanto.

7. Seja m um inteiro positivo maior que 1. Entao, os inteiros 0, 1,...,(m-1) mais as ope-racoes de adicao e multiplicacao, definidas abaixo, constitui um sistema numerico,chamado Zn.

A adicao de um par de numeros x, y em Zn, e definida cono r, o resto da divisaode (x + y) por n. Escrevemos

x + y ≡ r mod n

e dizemos que x+ y e congruente a r modulo m. Por exemplo, Z11 consiste dosinteiros 0, 1, 2,...,10, e

Page 18: MATEMÁTICA DISCRETA -Benedito Melo

18 CAPITULO 1. CINCO ALGORITMOS IMPORTANTES NOS INTEIROS

3 + 5 ≡ 8 mod 11

7 + 9 ≡ 5 mod 11.

A multiplicacao de um par de numeros x, y, em Zn, e definido como sendo s, oresto da divisao de xy por por n. Por exemplo,

3× 3 ≡ 6 mod 11,

7× 9 ≡ 8 mod 11.

onde 8 e o resto da divisao de 63 por 11.

Construa um algoritmo, usando subtracao de inteiros, para a adicao de numerosem Z7. O algoritmo deve aceitar qualquer par de numeros em Z7 e devolverum numero de Z7.

8. O algoritmo de Euclides, 5, usa divisao inteira.

A divisao pode ser efetuada por subtracoes repetidas(algoritmo 1).

Projetar um algoritmo do maximo divisor comum que usa subtracao diretamente.

9. Le Donald Knuth(1969, pp, 1-9) sobre algoritmos.

10. Le Philip Davis and Reuben Hersh(1981, pp. 180-6).

Page 19: MATEMÁTICA DISCRETA -Benedito Melo

Capıtulo 2

Algoritmos de mundanca de base

2.1 Introducao

A representacao dos inteiros em outras bases diferentes de 10, particularmente 2, 8 e 16e o principal assunto deste capıtulo. Daremos exemplos para mostrar como os algoritmosusuais para a adicao, a multiplicacao e assim por diante, sao modificados quando osinteiros positivos sao expressos em bases nao decimais. Em seguida, examinaremos umamaneira como os inteiros sao representados no computador. Finalmente, discutiremos osnumeros reais. Embora os mesmos sımbolos sejam usados para operacoes sobre os reaise os inteiros, os algoritmos subjacentes sao necessariamente diferentes. Os algoritmossao apresentados para mostrar como funcionam os sistemas de bases e as operacoes.Neste capıtulo deveremos aprender a usar os algoritmos e mostrar os fatos sobre bases enumeros reais. Num nıvel mais avancado deveremos ser capazes de projetar algoritmospara resolver problemas e usar algoritmos projetados por outros.

Comumente, os numeros sao representados usando dez dıgitos. A posicao de cadadıgito determina seu valor sobre uma base de dez. Por exemplo, a cadeia(string) dedıgitos 325 e uma notacao para

300 + 20 + 5

ou

3× 102 + 2× 101 + 5× 100

Entretanto, nao e necessario que a base seja 10, e por razoes de hardware as bases2(binaria), 8(octal) e 16(hexadecimal) sao usadas com frequencia nos computadores. Asrazoes matematicas que suportam essas escolhas sao

19

Page 20: MATEMÁTICA DISCRETA -Benedito Melo

20 CAPITULO 2. ALGORITMOS DE MUNDANCA DE BASE

1. que as tabuas de adicao e multiplicacao em binario tem somente quatro entradas,diferentemente das 20 na base 10.

2. Os algoritmos para mudar de base sao muito eficientes.

2.2 Os inteiros em diferentes bases

No que segue, “um inteiro diferente de zero e representado na base x” significa “o inteiroe escrito na forma”

sakak−1...a1a0 (base x)

onde s, o sinal do inteiro, e + ou -, e ai e um inteiro tal que ak 6= 0 e para qualqueroutro i, 0 ≤ ai < x. A base, x, e um inteiro maior ou igual a 2. O numero tem o valor

s(ak × xk + ak−1 × xk−1 + ... + a1 × x1 + a0 × x0).

Esta expressao e chamada a expansao literal do numero.O inteiro zero e representado por ‘0’ em todas as bases. Ele nao e negativo nem

positivo, portanto nao tem sinal. Se s e positivo, e comum omitir o sinal.A frase “um inteiro e representado como uma cadeia de comprimento n na base x”

siginifica “o inteiro e escrito na base x, com suficientes zeros na frente para tornar a cadeiade n dıgitos”. Se a base e 2, a cadeia pode ser referida como uma cadeia binaria. Se abase e 10, a cadeia pode ser referida como uma cadeia decimal.

Exemplo 2 Dar a expansao literal de

325(base 10), −1101(base 2), 1703(base 8)

325(base 10) = 3× 102 + 2× 101 + 2× 100

-1101(base 2) = −(1× 23 + 1× 22 + 0× 21 + 1× 20

1703(base 8) = 1× 83 + 7× 82 + 0× 81 + e× 80

O sistema hexadecimal requer a invensao de seis novos dıgitos. Os numeros decimais10, 11, 12, 13, 14, 15 sao representados por A, B, C, D, E e F, respectivamente.

Exemplo 3 Dar a expansao literal de A13B(base 16).

10× 163 + 1× 162 + 3× 16 + 11

A notacao 32510, 11012, 17038, A13B16 tambem sera usada para indicar a base.

Page 21: MATEMÁTICA DISCRETA -Benedito Melo

2.2. OS INTEIROS EM DIFERENTES BASES 21

Exemplo 4 Representar 32510 como uma cadeia decimal de comprimento 8.

00000325

Exemplo 5 Representar 11012 como uma cadeia decimal de comprimento 8.

00001101

Mudanca de base

O sinal de um inteiro nao e afetado quando se troca sua base. Portanto, sera suficientedar as regras para os inteiros positivos.

Mudando de decimal

Problema 1 Como poderemos trocar a representacao de um inteiro da base 10(decimal)para uma outra base?

O metodo envolve repetidas divisoes inteiras do numero pela base. O metodo serailustrado pelo seguinte exemplo.

Exemplo 6 Converter 38010 para octal.No calculo, sucessivos quocientes serao divididos pela base ate o quociente ser reduzidos

a zero. Os restos serao registrados, da direita para a esquerda, como dıgitos octais.380 = 8× 47 + 4 (dividido por 8, registra 4)47 = 8× 5 + 7 (dividido por 8, registra 7)5 = 8× 0 + 5 (dividido por 8, registra 5)

O resultado e 38010 = 5748. O resultado pode ser verificado substituindo os quocientessucessivos de volta na linha acima, portanto:

380 = 8× (8× (8× 0 + 5) + 7) + 4 (decimal)= 5× 82 + 7× 81 + 4× 80 (decimal)= 5748

Converter 38010 para hexadecimal.Os sucessivos quocientes sao divididos pela base ate o quociente ter sido reduzido a

zero. Os restos sao registrados, da direita para a esquerda, como dıgitos decimais.380 = 16× 23 + 12 (dividido por 16, registra C)23 = 16× 1 + 7 (dividido por 16, registra 7)1 = 16× 0 + 1 (dividido por 16, registra 1)

O resultado e 380 = (1)(7)(12) = 17C(base 16). Este resultado pode ser verificadosubstituindo sucessivamente o quociente no sentido inverso na linha acima. Assim:

380 = 16× (16× (16××0 + 1) + 7) + 12 (decimal)

Page 22: MATEMÁTICA DISCRETA -Benedito Melo

22 CAPITULO 2. ALGORITMOS DE MUNDANCA DE BASE

= 1× 162 + 7× 161 + 12 (decimal)= 17C(base 16)

O algoritmo abaixo descreve o metodo na sua forma mais geral.

Algoritmo 1 Mudar a representacao de um inteiro de decimal para uma outra base.

Entrada: Um inteiro n > 0, representado em decimal.

Um inteiro b ≥ 2. (b e a nova base.)

Precondicoes: Um inteiro n > 0, representando o decimal, e b ≥ 2.

Saıda: n, representado na base b.

Poscondicoes: A expansao literal de n na base b.

Metodo:

q ← n (q recebe o valor inicial n)

Enquanto q > 0

Dividir q por b, obtendo resto r e quociente q1.

Faca q ← q1.

O proximo dıgito(da direita para a esquerda) na saıda e r.

Exercıcio 1 Usar o algoritmo para mostrar que 38010 = 1011111002.

Mudanca para decimal

Problema 2 Como a representacao de um inteiro em outra base pode ser alterada paradecimal?

Este problema e exatamente o inverso do anterior. O procedimento mais obvio seriamultiplicar a expansao literal do inteiro. No entanto, o metodo abaixo e mais eficiente,requerendo menos operacoes.

Exemplo 7 Converter 23DA(base 16) em decimal.

Da definicao:23DA(base 16) = 2× 163 + 3× 162 + 13× 16 + 10

(6 multiplicacoes e 3 adicoes)= 16× (2× 162 + 3× 16 + 13) + 10= 16× (16× (2× 16 + 3) + 13) + 10= 16× (16× (16× 2 + 3) + 13) + 10

(O calculo da ultima expressao requer 3 multiplicacoes e 3 adicoes)Os calculos procedem dos parenteses internos para obter 9178 em decimal.

Page 23: MATEMÁTICA DISCRETA -Benedito Melo

2.2. OS INTEIROS EM DIFERENTES BASES 23

O algoritmo usado no exemplo acima e conhecido por metodo de Horner.

Algoritmo 2 (Horner)Para mudar a representacao de um inteiro de outra base para a decimal.

Entrada: x, a base na qual o numero n esta representado.ak, ak−1,..., a0. (os dıgitos de n na base x)

Precondicoes: n ≥ 2 e ak 6= 0 e 0 ≤ aj < x.Saıda: n, o numero expresso na base 10.

Poscondicoes: A expansao literal de n na base xMetodo: n← ak (inicialize n com ak).

Para i = 1 ate kn← n× x + ak−i.

(isto e, n vezes a base mais o proximo dıgito da direita)

Os exemplos a seguir ilustram a aplicacao do algoritmo.

Exemplo 8 Converter 23DA16 em decimal.Representando numeros em decimal dentro das etapas

do algoritmo, temos:

x a3 a2 a1 a0 n16 2 3 13 10 2

2× 16 + 3 = 3535× 16 + 13 = 573

573× 16 + 10 = 9178Portanto, 23DA16 = 917810

Exemplo 9 Converter 70258 em decimal.

x a3 a2 a1 a0 n8 7 0 2 5 7

7× 8 + 0 = 5656× 8 + 2 = 450

450× 8 + 5 = 3605Portanto, 70258 = 360510

Operacoes aritmeticas sobre os inteiros positivos

Os algoritmos usuais que usamos para as operacoes aritmeticas sobre os inteiros positivosdependem da base, no caso a base 10. E possıvel construir um algoritmo geral para cadaoperacao, sobre qualquer base. O algoritmo poderia ser estendido para manipular comnumeros inteiros negativos, assim como para inteiros positivos, acrescentando-se regrasapropriadas. O algoritmo abaixo cobre a parte interessante, lidando com “dıgitos vai”.

Page 24: MATEMÁTICA DISCRETA -Benedito Melo

24 CAPITULO 2. ALGORITMOS DE MUNDANCA DE BASE

Problema 3 Como poderemos adicionar dois inteiros positivos na base x?

Vamos efetuar a adicao em decimal, observando o papel desempenhado pela base, eentao efetuar calculos paralelos numa base diferente.

Exemplo 10 Calcular 27 + 15 em decimal, binario e octal.

decimal binario octal“dıgito vai” 10 111110 10

27 11011 3315 1111 1742 101010 52

Em cada caso a resposta e quarenta e dois.

O algoritmo abaixo generaliza o metodo para uma base arbitraria. Estamos usando osımbolo ‘←’ para atribuir a variavel da esquerda o valor da expressao na direita. Algunsautores usam o sımbolo ‘:=’, emprestado da linguagem de programacao Pascal, paraveicular o mesmo significado.

Por exemplo, o trecho ci ← ai = bi + di − x significa que o valor de ci e substituıdopelo valor de ai + bi + ci − x.

Algoritmo 3 (Adicao) Adiciona dois inteiros positivos representados na base x.Entrada: a, b, inteiros, ambos representados na base x.Precondicoes: a > 0 e b > 0.Saıda: c, inteiro, representado na base x.Poscondicoes: c = a + bMetodo: Represente a por ak...a0, uma cadeia de comprimento

k+1, na base x.Represente b por bk...b0, uma cadeia de comprimentok+1, na base x.(se necessario, preencha com zeros na frente de modoque as cadeias sejam iguais.)d0 ← 0 (di e para ser usado como o “dıgito vai”

da coluna i-1)Para i=0 ate k

se ai + bi + di ≥ x entaodi+1 ← 1ci ← ai + ci + di − x

senaodi+1 ← 0ci ← ai + bi + di

se dk+1 = 1 entao ci+1 ← 1

Page 25: MATEMÁTICA DISCRETA -Benedito Melo

2.2. OS INTEIROS EM DIFERENTES BASES 25

Problema 4 (Subtracao) Como poderemos subtrair um inteiro de outro, ambos represen-tados na base x?

A subtracao decimal abaixo nos relembra o papel da base(10) na subtracao usual. Assubtracoes binaria e octal fazem calculos paralelos em diferentes bases.

Exemplo 11 Calcule 50 - 22.

decimal binario octal50 110010 62−22 −10110 −26

28 11100 34

em cada caso a resposta e vinte e oito.

Algoritmo 4 (Subtracao) Para subtrair um inteiro positivo de outro, ambos representa-dos na base x.

Entrada: a, b, inteiros, ambos representados na base x.Represente a por ak...a0, uma cadeia de comprimento k+1Represente b por bk...b0, uma cadeia de comprimento k+1(se necessario preencha com zeros na frente,de modo que as cadeias sejam iguais).

Precondicoes: a > b > 0.Saıda: Um inteiro, representado na base x.Poscondicoes: c = a - b.Metodo: d0 ← 0 ( di e para ser o “dıgito vai”

da coluna i - 1).para i = 0 ate k

se ai − bi − di ≥ 0 entaodi+1 ← 0ci ← ai − bi − di

senaodi+1 ← 1ci ← ai + x− bi − di

Multiplicacao

Um algoritmos para a multiplicacao de inteiros positivos, representados numa base arbi-traria x, poderia usar adicao repetida. O algoritmo usual para a multiplicacao se funda-menta no conhecimento de uma “tabela de multiplicacao” para a base na qual os inteirosestao representados e usa o fato de que, para cada base x, multiplicacao por xn “desloca”a representacao dos inteiros n casas para a esquerda ao se colocar n zeros a direita. Atabela de multiplicacao para os binarios consiste dos seguintes quatro fatos:

Page 26: MATEMÁTICA DISCRETA -Benedito Melo

26 CAPITULO 2. ALGORITMOS DE MUNDANCA DE BASE

0× 0 = 0 0× 1 = 0

1× 0 = 0 1× 1 = 1

Os exemplos seguintes ilustram o algoritmo usual para a multiplicacao de inteirosrepresentados na base 10 e as versoes paralelas para as bases 2 e 8.

Exemplo 12

decimal binario octal27 11011 33

× 13 × 1101 × 1581 11011 207

270 1101100 330351 11011000 537

101011111

Divisao

Um algoritmo para a divisao de inteiros positivos, representados numa base arbitraria x,poderia usar subtracao repetitiva. O exemplo seguinte ilustra o algoritmo usual para adivisao de inteiros na base 10 e a versao paralela para a base 2.

Exemplo 13 Calcular 729÷ 17.

decimal42 quociente

680 subtraia 40× 17 de 72949 resto ate aqui34 subtraia 2× 17 de 4915 resto

O quociente e 42 e o resto e 15.

Exemplo 14 Calcular 1101102 ÷ 10012 em binario.

binario110 quociente

1001 | 110110100100 subtraia 100× 10010010 resto ate aqui10010 subtraia 10× 1001

0 resto

O quociente e 1102 e o resto e 0.

Page 27: MATEMÁTICA DISCRETA -Benedito Melo

2.3. REPRESENTACAO DOS INTEIROS NUM COMPUTADOR 27

2.3 Representacao dos inteiros num computador

As propriedades dos inteiros vistas como um sistema matematico sao corporificadas emaxiomas. Seria interessante que essas propriedades fossem preservadas na representacaono computador. Para aritmetica mais pratica nao existe nenhuma dificuldade, porempara numeros muito “grandes” os primeiros axiomas falham e pode existir problemascom alguns dos outros.

Axioma 1 dos inteiros.

Para cada par de inteiros a, b, a + b e ab sao inteiros unicos. Dizemos quea adicao e a multipliccao sao definidas sobre os inteiros ou, as vezes, que osinteiros sao fechados sob a adicao e a multiplicacao.

Qualquer que seja o espaco reservado para cada inteiro, existirao inteiros bastante“grande” para ser possıvel uma representacao acurada dele no computador. Por exemplo,o produto

123123123× 987987987

nao pode ser efetuado nas calculadoras comuns. Uma calculadora retorna a respostaaproximada 1.2164417×1017. Para inteiros positivos maiores que 10100 muitas clculadorasretornam uma mensagem de erro. Portanto, em ultima instancia, o axioma 1 “falha”.

Inteiros positivos

Para o armazenamento de informacao, e necessario um dispositivo que possa existir emdiferentes estados e possa mudar de um estado para outro. E preciso que seja possıvelidentificar o estado do dispositivo sem erro. O tipo de dispositivo que e mais confiavelpara o armazenamento acurado e a identificacao e um que tenha exatamente dois estados.Portanto, no nıvel basico, informacao deve ser arranjada num forma bivalorada.

Para os inteiros o arranjo apropriado e o sistema binario, que usa somente os dıgitos0 e 1. O dispositivo elementar que pode existir em dois estados e chamado um “bit”.Para o nosso proposito os estados sao rotulados 0 e 1. A palavra bit e uma contracao de“binary digit”.

Como o tamanho potencialmente ilimitado dos numeros deve ser registrado numamaquina com capacidade limitada?

A pratica e decidir sobre o numero de bits usado para representar um inteiro. Asequencia de bits e chamada uma “palavra de comprimento fixo” ou simplesmente “pa-lavra”. As mais usadas sao as palavras de 8-bits, 16-bits e 32 bits. Vamos ilustrar oconceito usando palavras de 4-bits:

Page 28: MATEMÁTICA DISCRETA -Benedito Melo

28 CAPITULO 2. ALGORITMOS DE MUNDANCA DE BASE

0 e representado por 00001 00012 00103 00114 0100...

...7 0111

Observe que as cadeias de 4-bits, acima, correspondem aos numeros binarios de 1 a7. Como cada bit tem dois valores possıveis existirao 24 ou 16 palavras possıveis ao todo,deixando oito palavras para serem alocadas para os inteiros negativos. A alocacao temsido feita de varias maneiras, talvez a mais obvia seja o metodo do “sinal, magnitude”que usa um bit para o sinal e o resto para a magnitude do numero. No entanto, o quesegue talvez seja o metodo mais utilizado. Ele e chamado o “metodo do complemento dedois”. A vantagem deste metodo e que podemos somar (ou subtrair) sem ter que checaro primeiro sinal. Um erro de estouro pode ocorrer, mas isto e facil(eletronicamente) dedectectar.

Inteiros negativos

Continuando, como ilustracao, com as palavras de 4-bits, temos:

-1 e representado por 1111-2 1110-3 1101-4 1100...

...-7 1001-8 1000

Observe que cada palavra representando um numero inteiro negativo tem um ‘1’ naprimeira posicao. Mas como e escolhida a palavra toda?

A palavra de 4-bits 1111, e vista como um inteiro binario(comprimento variavel) 10000- 1.

Portanto, quando temos -1 representado por 1111, na tabela acima, isto correspondea 10000 - 1 em binario, que e 16 - 1 em decimal. Analogamente, -2 e representado por1110, que corresponde a 1000 - 10 em binario, ou 16 - 2 em decimal. A explicacao e queas palavras de 4-bits corespondem aos numeros em Z16 no qual 16 ≡ 0.

Vamos fazer o calculo binario que produz 1110 para -2.

Page 29: MATEMÁTICA DISCRETA -Benedito Melo

2.3. REPRESENTACAO DOS INTEIROS NUM COMPUTADOR 29

10000 pode ser escrito como 1111 +1− 10 − 101110 que produz 1101 +1

ou 1110

O calculo na esquerda usa mais que quatro bits. A vantagem desse calculo na direitae que ele pode ser efetuado corretamente, usando nao mais que quatro bits.

Observe que 1101 tem dıgitos que sao o “complemento” dos dıgitos em 0010, a palavrabinaria para 2. Isto leva ao seguinte procedimento para achar a representacao da palavrade comprimento fixo para -2. Este procedimento pode ser facilmente implementado emhardware.

1. Escreva a palavra para 2, resultando 1101.

2. Substitua cada zero por 1 e cada 1 por 0, resultando 1101.

3. Adicione 1 a 1101 em binario, dando 1110. (Para que esta ultima etapa se apliquea todos os casos, ignore qualquer dıgito vai para coluna 5.)

A razao para a assertiva entre parenteses na etapa 3 e lidar corretamente com o nega-tivo de 0. Aplique o procedimento acima para a representacao da palavra de comprimentofixo para - 0.

1. A palavra para 0 e 0000.

2. A transformacao gera 1111.

3. Adicionar 1 a 1111 resulta 0000(o resultado matematico correto) desde que iguino-remos o ultimo dıgito vai.

O procedimento pode ser usado para achar a representacao para o negativo de qualquernumero, desde que nao necessitemos sair das palavras disponıveis.

Por exemplo, o negativo de -8 nao esta disponıvel nas palavras de 4-bits.Representar inteiros com palavras fixas de 4-bits e deveras limitado. Um computador

usando palavras de 16-bits, tal como um IBM PC, tem 216, isto e, 655536 palavras dis-ponıveis. Usando o esquema do complemento de dois, e possıvel representar os inteirosde -32768 a 32767. Muitos computadores usam palavras de 32-bits, que permitem asrepresentacoes de -2147483648 a 2147483647.

Estamos conscientes de que o axioma 1, para os inteiros, nao se verifica na sua repre-sentacao no computador. No entanto e possıvel fazer muita aritmetica, dentro do intervalousado na pratica. Todos os axiomas dos inteiros se verificam, contanto que os calculospermanecam dentro do intervalo permitido. Se um calculo resultar numa resposta que naopossa ser representada dentro das palavras de comprimentos fixos permitidos, podemos

Page 30: MATEMÁTICA DISCRETA -Benedito Melo

30 CAPITULO 2. ALGORITMOS DE MUNDANCA DE BASE

dizer que ocorreu um “estouro”. Se ocorrer um estouro num computador e gerado umsinal para avisar este fato.

Agora considere palavras de comprimento fixo de tamanho arbitrario.

Problema 5 Como poderemos representar inteiros positivos, usando palavras de n-bitsde comprimento fixo?

Algoritmo 5 Para representar inteiros positivos, i, usando palavras de n-bits.

Entrada: Um inteiro n.(o numero fixo de bits numa palavra de inteiros)i, inteiro.

Precondicoes: 0 ≤ i ≤ 2n−1 − 1(i e o inteiro a ser representado)

Saıda: Uma palavra de n-bits, representando um inteiro i.Metodo: Representa i em binario(se necessario).

akak−1...a0, onde k ≤ n− 2Preencher com zeros na frente para formaruma palavra de n-bits.

Exemplo 15 Represente 53 em palavras de 8 bits.

5310 = 1101012

Portanto, 53 e representado por 00110101.

Problema 6 Como poderemos representar os inteiros negativos, usando palavras de com-primento fixo de n-bits?

Algoritmo 6 Para representar o inteiro negativo, usando palavras de n-bits. (A repre-sentacao de complemento de dois de inteiros com sinal.)

Page 31: MATEMÁTICA DISCRETA -Benedito Melo

2.3. REPRESENTACAO DOS INTEIROS NUM COMPUTADOR 31

Entrada: n e i inteiros.Precondicoes: −2n−1 ≤ i ≤ 2n−1 − 1.

(i e o inteiro a ser representado)Saıda: Um palavra de n-bits, representando -i.

Poscondicoes: obvia.

Metodo: Caso 1. i ≥ 0.1. Se necessario, use o algoritmo anterior para escrevera palavra de n-bits para i.2.Substitua dıgitos. Substitua 0 por 1 e 1 por 0.3. Adicione 1 a palavra de n bits assim obtida,usando adicao binaria exceto que um dıgito “vai”da coluna deve ser ignorado.4. A palvra assim produzida representa -1.Caso 2. i < 0.Se for dada a representacao para i, apliqueas etapas 2, 3, 4 do caso 1.Caso contrario, −i > 0 e -i pode ser representadodiretamente usando o algoritmo anterior.

Exemplo 16 Representar o negativo de 53, usando palavras de 8-bits.

5310 e representado por 0011010111001010 (substituindo dıgitos)

+ 1 (adciona 1)11001011

(−53) e representado por 11001011

Exemplo 17 Representar -(-53) usando palavras de 8-bits.

(−5310) representado por 11001011 do exemplo anterior.00110101 (substituindo dıgitos)

+ 1 (adicionando 1)00110101

−(−53) e representado por 00110101

Exemplo 18 Achar o inteiro cuja palavra de 8-bits e 11100001. O inteiro procuradodeve ser negativo, pois o dıgito mais a esquerda e 1. Usaremos o algoritmo da negacaopara descobrir seu valor. Seja i o inteiro cuja representacao e 11100001. Entao:

Page 32: MATEMÁTICA DISCRETA -Benedito Melo

32 CAPITULO 2. ALGORITMOS DE MUNDANCA DE BASE

i e representado por 11100001aplique o algoritmo anterior 6

substitua dıgitos: 00011110adicione 1: 00011111

-i e representado por 00011111portanto -i igual 31

e -(-i) igual -31Portanto

i = -31

O metodo pelo qual sao “acrescentados” palavras de n-bits de comprimento fixo e paratrata-las como inteiros, exceto que os dıgitos vai da coluna mais a esquerda sao ignorados.

2.4 Numeros reais

A operacao de divisao nao esta definida sobre os inteiros. Isto e, a ÷ b nao e um inteiropara todos os pares de inteiros a e b.

Entretanto, os inteiros podem ser estendidos para formar um novo sistema de numeros,chamado os racionais, no qual a divisao possa ser definida.

Mesmo os racionais nao sao suficientes para fazer tudo que os matematicos gostariam.Para resolver equacoes tais como x2−2 = 0 e representar todo ponto sobre a reta por umnumero, e necessario inventar uma outra classe de numeros chamados irracionais.

Os numeros racionais juntos com os irracionais formam os numeros reais.

Numeros racionais

Os numeros racionais sao basicamente pares de inteiros numa determinada ordem. Porexemplo, 2

3(as vezes escrito 2/3) e 3/2 sao diferentes.

O conjunto dos inteiros e denotado por Z. O conjunto dos racionais consiste de todosos pares ordenados de inteiros p/q nos quais q 6= 0. E comum denota-lo por Q. As quatrooperacoes, adicao, multiplicacao, subtracao e divisao, sao definidas sobre Q.

Para todos racionais pq, r

s, onde p, q, r, s sao inteiros com q, s 6= 0, definimos:

adicao

p

q+

r

s=

ps + qr

qs

subtracao

p

q− r

s=

ps− qr

qs

Page 33: MATEMÁTICA DISCRETA -Benedito Melo

2.4. NUMEROS REAIS 33

Observe que esta definicao e equivalente aquela dada anteriormente para a subtracao,se definirmos o negativo do racional r

spor −r

s.

multiplicacao

p

q× r

s=

pr

qs

divisao, desde que r 6= 0

p

q÷ r

s=

ps

qr

Observe que esta definicao pode ser reescrita em termos da definicao de mul-tiplicacao, se definirmos a inversa de um racional ( r

s) como sendo s

r. Entao,

para dividir por um racional, multiplique-o pelo seu inverso.

Mas o conjunto dos racionais introduz um novo problema. Um numero racional podeser representado por infinitos pares de inteiros diferentes. Por isso precisamos de ummecanismo para decidir se pares de inteiros distintos representam o mesmo racional ounao.

Por exemplo, 1808/1017 e 16/9 sao o mesmo numero. Uma abordagem pararesolver esse problema e definir igualdade de numeros racionais.

Definicao 3 (igualdade) pq

= rs

se e somente se ps = qr.

Outra maneira de resolver esse problema e expressar um racional pq

numa forma padrao.Isto pode ser feito expressando o racional no “mais baixo termo”, por exemplo,

18081017

= 113×16113×9

= 169

onde 113 e o maximo divisor comum de 1808 e 1017. Ou pode ser feito estendendo a“expansao literal” de um numero a racionais, pelo processo usual da divisao, estendidoalem do ponto decimal. Por exemplo,

18081017

= 1,7777...= 1, 7

169

= 1, 7

A ultima alternativa introduz uma outra dificuldade. Algumas calculadoras devolvem1.7777778 para 16

9. Podemos achar que isso e uma aproximacao razoavel. No entanto, para

conviver com o tamanho finito do espaco de armazenamento de algumas outras maquinas,e necessario aproximar esse numero para uma resposta correta. O estudo dos calculos quesao sensıveis a erros pequenos e parte da analise numerica, assunto muito especializadopara o objetivo deste curso.

Existem dois problemas a considerar:

Page 34: MATEMÁTICA DISCRETA -Benedito Melo

34 CAPITULO 2. ALGORITMOS DE MUNDANCA DE BASE

1. Como podera ser representado sobre uma maquna um numero cuja expansao literale tal que sua representacao estouraria o espaco reservado para numeros?

2. Como devera terminar um algoritmo que forneca a representacao decimal de umnumero racional.

A primeira questao pode ser investigada efetuando o seguinte calculo numa calcula-dora:

77777777 + 0, 12345678− 77777777

Algumas calculadoras devolvem 0,12. Outras produzem respostas diferentes. A res-posta indica a capacidade que a calculadora possui de arredondar o numero para o valormais proximo que esteja correto. Para muitas calculadoras, casas de 00-49 e arredondadopara 0 e de 50-99 para 1.

A segunda questao pode ser investigada considerando alguns exemplos.

Exemplo 19 Achar a expansao literal do racional 8/11 em decimal.

0, 7211 ) 8.00

7, 7030228

Neste ponto o algoritmo requer a operacao “8 dividido por 11”, o mesmo que a primeiraoperacao. O algoritmo repete a mesma sequencia de divisoes desde quando comecou oprocesso. O algoritmo entra num laco sem fim repetindo os dıgitos 7, 2. Temos:

8/11 = 0, 7272... = 0, 72

Exemplo 20 Achar a expansao literal do racional 3/4 em decimal.

Para este exemplo o mesmo procedimento de divisao termina. Temos:

3/4 = 0, 75

Exemplo 21 Achar a expansao literal do racional 13/61 em decimal.

Page 35: MATEMÁTICA DISCRETA -Benedito Melo

2.4. NUMEROS REAIS 35

Usando o algoritmo da divisao como no exemplo acima obteremos: 13/61 = 0, 213114754098360655737704918032786885245901639344262295081967,apos o que os dıgitos se repetem.

Para divisoes por 61 existem, alem de zero, 60 restos possıveis. Portanto o tamanhodo 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 decomprimento no maximo q - 1. A regra mais simples e parar quando foi atingido algumnumero especıfico de dıgitos.

O algoritmo usado em nossa calculadora parece parar apos serem calculados 9 dıgitos,sendo que os dois ultimos dıgitos sao usados para arredondar para 7 dıgitos. Assim anossa calculadora gera

0, 7272727, 0, 75, 0, 2131148

nos exemplos dados acima.

Numeros racionais expressos em binario

As cadeias de dıgitos

ak...a1a0.a−1...a−s (base x)

representa a espansao literal

akxk + ... + a1x + a0 + a−1x

−1 + .... + a−sx−s

Exemplo 22 Converter 11, 0112 para decimal.

11, 0112 = 2+1+ 14+ 1

8= 27

8= 3, 375 (decimal) por divisao usual (ou por calculadora).

Exemplo 23 Converter 1101, 1011012 = 87710. Portanto:

1101,101101 = 1101101101/1000000 (binario)= 877/64 (decimal)= 13,703125 (decimal)

Os exemplos acima apresentam duas abordagens para a conversao em decimal de umracional expresso em binario.

Problema 7 Como poderemos converter para binario uma fracao expressa em decimal?

Page 36: MATEMÁTICA DISCRETA -Benedito Melo

36 CAPITULO 2. ALGORITMOS DE MUNDANCA DE BASE

A abordagem apresentada abaixo e subtrair, em cada estagio, a maior fracao binariapossıvel, ate nao restar nada.

Por exemplo, 0, 75− 12− 1

4= 0. Portanto, 0, 7510 = 0, 112.

Algoritmo 7 Para convertr em binario uma fracao decimal.

Entrada: Um numero racional a, entre 0 e 1, expresso em decimal.Saıda: a expresso em binario exato ate oito dıgito(digamos).

Os dıgitos sao registrados a partir do ponto paraa direita, na ordem em que forem encontrados.

Metodo: Seja a um numero racional a ser convertido em binario.Inicialze i com 1. (i conta o numero de lugares

com inıcio no ponto).enquanto a > 0 e i ≤ 8 :

se 2−i ≤ aentao

a e dado pelo valor a− 2−i

registre 1senao

registre 0incremente i de 1.

Exemplo 24 Converter 0, 37510 para a base 2.

i a 2−i (2−i ≤ a) saıda1 0,375 0,5 f ,02 0,375 0,25 t ,013 0,125 0,125 t ,0114 0

Erros

Seja y = x + e uma aproximacao para x. Dizemos que |e| e o valor absoluto do erro aotomar y como uma aproximacao para x. Defina ε como o maior valor possıvel de |e|.

Exemplo 25 Uma calculadora retorna o valor 0,714285 para algum calculo nao especi-ficado. Qual e o maior erro possıvel:

(a) Se a calculadora “arredonda” ?

(b) Se a calculadora “trunca”?

Page 37: MATEMÁTICA DISCRETA -Benedito Melo

2.4. NUMEROS REAIS 37

(a) Seis dıgitos sao visıveis apos o ponto decimal. Na hipotese de que a calculadora temoutros dıgitos nao apresentados e o numero apresentado foi obtido por arredonda-mento, o ultimo dıgito apresentado deve ser o sexto dıgito calculado mais proximoda resposta exata. Na pratica, isto significa que se o dıgito omitido representa ametade ou mais do valor do ultimo dıgito visıvel, entao esse dıgito foi aumentado de1. Os numeros no intervalo 0.7142845—0,7142854999... arredonda para a respostadada. O maior valor absoluto possıvel e ε = 0, 000005.

(b) Truncamento e a acao de “tirar fora” ou ignorar os dıgitos nao apresentados. Osnumeros no intervalo de 0,714285–0,714285999.. trucam para a resposta dada. Omaior erro absoluto possıvel 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 ε.

Numeros irracionais

Todo numero racional (pq) tem uma espansao decimal que ou para, ou permanece em ciclo

sem fim, com a mesma sequencia de dıgitos. Mas existem numeros com espansoes decimaisque nem termina nem permanece em ciclo. Tais numeros nao podem ser expressos comoa razao de dois inteiros e por isso sao chamados irracionais.

Exemplos de numeros irracionais sao 1,10110010001...,√

2, π, log107, ln3, sen π10

. Exis-te uma quantidade infinita de numeros irracionais.

Para armazenar os numeros irracionais numa maquina, eles sao aproximados por ra-cionais de comprimento fixo, da mesma maneira como os racionais que ficam em ciclo ousao muito longos.

Um algoritmo iterativo para calcular√

k

Problema 8 Como poderemos achar a raız quadrada de um numero real positivo?

Page 38: MATEMÁTICA DISCRETA -Benedito Melo

38 CAPITULO 2. ALGORITMOS DE MUNDANCA DE BASE

A seguir e apresentado um algoritmo eficiente para uma calculadora ou computadorpara achar a raız quadrada de um numero real positivo.

Algoritmo 8 Para calcular, com alguma acuracidade, a raız quadrada de um numeroreal positivo.

Entrada: O real positivo k.(pretendemos achar a raız quadrada de k)ε > 0, real.(ε e a medida da proximidade que sera aceita.)

Saıda: O real y.

(y e a aproximacao final para√

k )Metodo: Dar um valor a x. Qualquer numero real positivo.

i← 0 (inicaliza i).Repita

x ← (x + kx)/2

(x e a aproximacao corrente de√

k)i ← i + 1

ate x esta proximo a√

k.y ← x

O que significa proximo?x esta proximo a

√k pode ser refinado para

(|x2 − k| ≤ ε) e verdadeiro (1)ou (|x− o valor anterior de x| ≤ ε) e verdadeiro (2)

As assertivas (1) e (2) sao booleanas. A primeira assertiva e verdadeira se a raızquadrada de x estiver proximo a k. A segunda afirmativa e verdadeira se os sucessivosvalores de x estao cada vez mais proximos um do outro.

Omitindo a variavel i nao terıamos nenhum efeito sobre a operacao do algoritmo. Eleatua meramente como um contador para dar o numero da aproximacao corrente de x a√

k.

Exemplo 26 Calcule√

25Dar a x o valor inicial 25/2. Estabelecer 0,02 para ε. Usar o criterio (2) de “proxi-

midade”.

x i |xi − xi−1| (|xi − xi−1| ≤ 0, 02)12,5 07,25 1 5,25 f5,349 2 1,9 f5,011 3 0,338 f5,000013 4 0,011 t

Page 39: MATEMÁTICA DISCRETA -Benedito Melo

2.5. EXERCICIOS 39

Exemplo 27 Calcular√

10. Qual e a percentagem do erro relativo ao tomar√

10 comouma aproximacao para π?

Dar a x o valor inicial 5. Estabeleca 0,0001 para ε. Use o criterio de “proximidade”(1).

x i x2 (|x2 − 10| ≤ 0, 00015 03,5 1 12,25 f3,17857 2 10,1033 f3,162319 3 10,00026 f3,162277 4 10,00000 t

O valor exato para quatro casas decimais e√

10 = 3, 1623. Mas, π = 3, 1415926...Portanto a percentagem de erro e

|3, 1623− π| × 100/π = 0, 7%

Este algoritmo esta correto? Pode-se mostrar, usando desigualdade que√

k esta entrex e k/x. Alem disso, tirando a media desses dois valores obtem-se uma melhor aproxi-macao para a raız quadrada de x.

Uma prova melhor( isto e, mais simples e mais geral) de que esse algoritmo esta corretousa o metodo de Newton, o qual, no momento, esta fora do nosso escopo.

2.5 Exercıcios

1. Dar a espansao literal de:

(a) 120910 (b) 11010110 (c) C10AA16

2. Converter os seguintes numeros para binario e em seguida para hexadecimal:

(a) 23410 (b) 102410 (c) 25510 (d) 7478 (e) 3268

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

Page 40: MATEMÁTICA DISCRETA -Benedito Melo

40 CAPITULO 2. ALGORITMOS DE MUNDANCA DE BASE

6. Percorra o algoritmo 3 fazendo x = 8, a = 2304, b = 514. Dar a saıda do algoritmo.

7. De a representacao complemento de dois de 63 e -17 em palavras de 8-bits.

8. Achar os inteiros representados na forma complementos de dois pelas palavras de8-bits 00111001, 10011010.

9. Projete um algoritmo para:

(a) resolver ax = b, para x em termos dos numeros reais a e b.

(a) resolver ax2 + bx + c = 0 para x em termos de a, b, c, reais.

10. Uma tabua encontrada na Babilonia, cerca de 1700 antes de Cristo, fornece o valor1;54,51,10 para a raız quadrada de dois. Dado que os antigos babilonios usavam osistema sexagesimal de numeracao, isto e, um sistema baseado em 60, calcular seuvalor para

√2 e determinar sua acuracidade.

11. Qual de, se for o caso

215491216169

ou 215492216170

e igual a 19071913

?

12. Converta x = 14,14 de decimal para binario.

Arredonde a resposta para um numero binario y, com 10 dıgitos binarios. Acheo erro relativo de y, como uma aproximacao para x, convertendo y de volta paradecimal.

13. O numero racional 227

e com frequencia usado como uma aproximacao para π. Dadoque π = 3, 141592654..., ache o erro relativo na aproximacao dada.

14. Calcule a raız quadrada de 5 usando o algoritmo 8.

Qual o erro absoluto se forem efetuadas duas iteracoes , comecando com x = 2 comoprimeira aproximacao para

√5?

15. Arquimedes(287-212 AC) estabelece 1351780

>√

3 > 265153

. Qual dessas aproximacoes e

mais proxima de√

3?

Qual e o erro absoluto ao se tomar 1351780

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.

Page 41: MATEMÁTICA DISCRETA -Benedito Melo

2.5. EXERCICIOS 41

17. Considere o seguinte algoritmo:

Entrada: x, racional entre 0 e 1, expresso em decimal.Saıda: x expresso em binario corrigido a oito dıgitos.

Registre os dıgitos na medida em que forem sendo encontrados,a partir da vıgula para a direita.

Metodo: a← xi← 1enquanto a > 0 e i ≤ 8 :

a← a ∗ 2se a ≥ 1

entaoa← a− 1registre 1

senaoregistre 0

i← i + 1

(a) dado a entrada x = 0, 610, achar a saıda.

(b) Explique em palavras o que o algoritmo faz. Como identificar “ciclos” na saıda?

18. O algoritmo dado abaixo acha as potencias inteiras positivas de um numero real.

Entrada: x real e n um inteiro positivo.Saıda: p real. (p deve ter o valor xn)

Metodo: Suponha que p tem valor 1.enquanto n 6= 0 :

divida n por 2 para obter o quociente q e resto r.se r = 1 entao

substitua o valor de p por p*x.suponha que n tem o valor qsuponha 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.

Page 42: MATEMÁTICA DISCRETA -Benedito Melo

42 CAPITULO 2. ALGORITMOS DE MUNDANCA DE BASE

Entrada: x real. (x pode ser um palpite para o valor de√

2)ε real

Precondicoes: x > 0, ε > 0

Saıda: y real. ( y e o valor aproximado desejado para√

2)Metodo: a← x

enquanto |a2 − 2| > ε :{a ← 1

a+1

a ← a + 1y ← a

(a) Dado ε = 0, 01 e x = 2, percorra o algoritmo.

(b) Qual e o erro absoluto na aproximacao para√

2 encontrado pelo algoritmo?

(c) Qual e o proposito do ε no algoritmo?

Page 43: MATEMÁTICA DISCRETA -Benedito Melo

Capıtulo 3

Conjuntos, Funcoes e Relacoes

3.1 Introducao

Nesta parte apresentaremos conjuntos, funcoes, relacoes e sequencias, conceitos basicosque ocorrem em muitos ramos da matematica. Todos nos estamos familiarizados comquase tudo que segue neste capıtulo, mas precisamos estabelecer os significados dessesconceitos fundamentais. Um dos objetivos dessa parte e desenvolver uma fluencia no usoacurado dos termos matematicos e a traducao entre a matematica e a linguagem comum.

Um dos nossos objetivo e desenvolver uma linguagem precisa, baseada em matematica,para a especificacao de algoritmos. Esperamos que isto ajudara na construcao de pro-gramas corretos que possam ser eficientemente mantidos, ou adaptados a satisfazeremnovos requisitos. A linguagem matematica introduzida nesta parte e essencial para o en-tendimento das ideias matematicas que seguem e para o preciso estabelecimento do quedesejamos sobre programas.

3.2 Conjuntos

Colocando as coisas que nos interessam em classes ou colecoes diferentes nos ajuda aorganizar nosso conhecimento. Apos essa classificacao, as relacoes entre esses objetos deinteresse emergem, aumentando nosso entendimento. Numa situacao pratica deve estarclaro quais os objetos de nosso interesse. A totalidade desses objetos que nos interessame chamado conjunto universal, que denotaremos por U. Um conjunto, S, consiste de umacolecao bem definida de objetos do conjunto universal. “Bem definida” significa que paracada objeto no conjunto universal, ele definitivamente pertence a S ou ele nao pertence aS. A relacao fundamental entre conjuntos e seus elementos e a relacao de pertinencia.

Se um elemento x pertence a um conjunto S, escreveremos x ∈ S.Se por outro lado, x nao pertencer ao conjunto S escrevemos x /∈ S.E comum usar letras minusculas, x, y, a, b, ... para elementos e maiusculas A, B, S,

43

Page 44: MATEMÁTICA DISCRETA -Benedito Melo

44 CAPITULO 3. CONJUNTOS, FUNCOES E RELACOES

...para conjuntos. Alguns conjuntos frequentemente usados tem notacoes especiais, comopor exemplo:

N e o conjunto dos numeros naturais, {0,1,2,3...}, (alguns excluem o elemento 0).

Z e o cunjunto dos numeros inteiros, { ...,-2,-1,0,1,2,3,...}.Q e o conjunto dos racionais.

R e o conjunto dos numeros reais.

B e o conjunto dos valores booleanos. B = {t, f}.Char e o conjunto de todos os caracteres disponıveis.∑

e um “alfabeto” de sımbolos.

Um conjunto sem nenhum elemento e chamado conjunto vazio, denotado por ∅ ou { }.Exemplo 28 Seja Char o conjunto universal, constituıdo 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 repeticao 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 descricao: A e o conjunto dos dıgitos na base 8.

• usando um predicado:

A = { x inteiros | x e nao negativo e e menor que 8}.O sımbolo ‘|′ e lido “tal que”. A notacao ‘:’ tambem e usada para “tal que”.

A expressao “x e nao negativo e e menor que 8” e verdadeiro para alguns inteiros xe falsa para o resto. A expressao e chamada um predicado.

Um predicado deve ser definitivamente verdadeiro ou falso para cada valor da va-riavel (x) no universo de discurso.

Em sımbolos:

A = {x ∈ Z|0 ≤ x ≤ 7},

aqui o predicado e 0 ≤ x ≤ 7.

Page 45: MATEMÁTICA DISCRETA -Benedito Melo

3.2. CONJUNTOS 45

• usando a funcao caracterıstica χ para A:

χ(j) =

{1 se j pertence a A0 se j nao pertence a A

A funcao χ esta definida para todo j no conjunto universal.

Como o conjunto universal, U, contem todos os elementos de interesse para um dadoproblema, os conjuntos de interesse serao tambem subconjuntos de U.

Definicao 4 (Subconjunto) Um conjunto A e um subconjunto do conjunto B se e so-mente se todo elemento de a e tambem elemento de B. Escreveremos A ⊆ B. O conjuntoA diz-se um subconjunto proprio de B se A for um subconjunto de B e no mınimo umelemento de B nao pertence a A. Escreveremos A ⊂ B.

Definicao 5 (Conjunto potencia) A colecao de todos os subconjuntos de U e, por suavez, tambem, um conjunto, chamado conjunto potencia de U, escrito

P(U) = {X|X ⊆ U}

Exemplo 29 Achar o conjunto potencia de {a,b,c}.Cada subconjunto de {a,b,c} pode ser construıdo usando uma funcao carac-terıstica. As oito funcoes caracterısticas podem ser geradas dos numeros 0,...,7expressos como cadeias de tres-dıgitos. Por exemplo, 3 gera a cadeia binaria011 e o subconjunto {b,c}. A tabela abaixo mostra a geracao de todos ossubconjuntos.

numero binario caracterıstica subconjuntoa b c

1 0 0 1 {c}10 0 1 0 {b}11 0 1 1 {b,c}100 1 0 0 {a}101 1 0 1 {a,c}110 1 1 0 {a,b}111 1 1 1 {a,b,c}0 0 0 0 { }

Portanto P{a, b, c}) = {{c}, {b}, {b, c}, ...{ }}O conjunto potencia de {a1, a2, ..., an} tem 2n elementos.

Page 46: MATEMÁTICA DISCRETA -Benedito Melo

46 CAPITULO 3. CONJUNTOS, FUNCOES E RELACOES

Propriedades de conjuntos

Tendo definido subconjunto, podemos, agora, definir igualdade de conjuntos.

Definicao 6 (Igualdade) Dois conjuntos A e B sao iguais se e somente se cada elementoem A pertence a B e cada elemento em B pertence a A.

Da definicao de subconjunto, acima, segue que a definicao de igualdade e equivalente a

A ⊆ B e B ⊆ A

Numero num conjunto

O numero de elementos num conjunto S sera denotado por |S| ou n(S). Um conjuntocontendo um unico elemento e chamado conjunto unitario.

Operacoes sobre conjuntos

Cada uma das operacoes a seguir produz um novo conjunto, a partir de dois conjuntosdados, (A,B).

Intersecao

O conjunto de elementos que pertencem a ambos os conjuntos A e B.

A ∩B = {x|x ∈ A e x ∈ B}

Uniao

O conjunto dos elementos que pertencem a no mınimo um dos dois conjuntos, o conjuntodos elementos que pertencem a A ou B.

A ∪B = {x|x ∈ A ou x ∈ B ou em ambos }

Diferenca

Os elementos do primeiro conjunto que nao estao no segundo conjunto .

A−B = {x|x ∈ A e x /∈ B}

Page 47: MATEMÁTICA DISCRETA -Benedito Melo

3.2. CONJUNTOS 47

Complemento

A (conjunto) diferenca entre o conjunto universal e o conjunto dado. O complemento deA e escrito A

′.

A′= U − A

Diferenca simetrica

A diferenca simetrica de A e B, denotado por A4B, e o conjunto dos elementos que estaoem exatamente um de A e B.

A4B = {x|x ∈ A ou x ∈ B mas nao em ambos }

Exemplo 30 Quantos inteiros de 1 a 1000 nao sao divisıveis por 9 e 12?

Solucao: Tome o conjunto universal como sendo todos os inteiros de 1 a1000, inclusive.

Seja A o conjunto dos inteiros divisıveis por 9. Seja B o conjunto dos inteirosdivisıveis por 12.

Entao, pretendemos achar n(U − (A ∪B)).

A = {9, 18, 27, ...}, e n(A) = b1000/9c = 1111

B = {12, 24, 36, ...}, e n(B) = b1000/12c = 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) = b1000/36c = 27,

Portanto,

n(U − A ∪B) = n(U)− n(A)− n(B) + n(A ∩B)= 1000− 111− 83 + 27= 833

1Lembre-se que bm/nc denota o quociente(inteiro) da divisao de m por n. No nosso caso quandodividimos 1000 por 9 achamos quociente 111 e resto 1.

Page 48: MATEMÁTICA DISCRETA -Benedito Melo

48 CAPITULO 3. CONJUNTOS, FUNCOES E RELACOES

Produto cartesiano

O conjunto de todos os pares ordenados cujos primeiros elementos estao no primeiroconjunto e os segundos elementos estao no segundo conjunto.

A×B = {(a, b)|a ∈ A e b ∈ B}Exemplo 31 {3, 4, 2} × {2, 6} = {(3, 2), (3, 6), (4, 2), (4, 6), (2, 2), (2, 6)}

Observe que (3,2) esta presente, mas (2,3) nao esta.

Exemplo 32 Uma tela de caracteres de texto pode ser descrita por meio de conjuntos,usando a ideia de produto cartesiano. Suponha que existe uma tela com 40 colunas e 20linhas. A convencao usual em computacao e crescer as colunas da esquerda para a direitae as linhas para baixo.

Seja C o conjunto dos numeros de colunas: C = {c ∈ N|1 ≤ c ≤ 40 }.Seja R o conjunto dos numeros de linhas : R = {r ∈ N|1 ≤ r ≤ 20 }.Entao o conjunto de todas as posicoes da tela e o produto cartesiano C ×R.

C ×R = {(c, r) ∈ N× N|1 ≤ c ≤ 40 e 1 ≤ r ≤ 20}Observe que este sistema para rotular pontos e analogo(mas nao o mesmo que) ao

sistema de coordenadas cartesianas usual.Seja Char o conjunto de caracteres que podem ser visualizados, incluindo um branco.Uma “tela de texto”, S, pode, agora, ser descrita formalmente como o conjunto das

triplas (c, r, x), onde x e o caractere visualizado na posicao (c, r).

S ⊂ C ×R× Char

Particao

A colecao de subconjuntos A1, A2, ..., Ak diz-se uma particao de A se e somente se cadaelemento em A esta em um dos subconjuntos Ai, e nenhum elemento esta em mais queum dos subconjuntos.

Formalmente, A1, A2, ..., Ak e uma particao de A se e somente se

A1 ∪ A2 ∪ ... ∪ Ak = A

e

Ai ∩ Aj = ∅, para todos os i, j, com i 6= j.

Os subconjuntos A1, A2, ... sao chamados as celulas da particao.

Page 49: MATEMÁTICA DISCRETA -Benedito Melo

3.2. CONJUNTOS 49

Exemplo 33 Considere o conjunto dos naturais N = {0, 1, 2, ...} e A1 ={0, 2, 4, ...}, o conjuntos dos naturais pares, e A2 = {1, 3, 5, ...}, o conjuntodos naturais ımpares. A1, A2 constituem uma particao de N.

Exemplo 34 Cada dia do ano pertence a uma das sete classes: segunda feira, terca,quarta, quinta, sexta, sabado e domingo. Por exemplo, o dia 200 em 1991 e uma sexta.Cada dia pertence a um e somente um dos dias da semana. Os dias da semana sao umaparticao do ano.

Paradoxos e conjuntos universais

Embora a teoria dos conjuntos pareca ser muito simples, no seu inıcio(pre-axiomatica)ela suscitou muitos paradoxos e debates.

Bertrand Russell(1873-1970) usou a descricao de Cantor(1895) de um conjunto como“uma colecao de objetos definidos e separados de nossa intuicao ou pensamento” e tentoudefinir um conjunto S por

S = {X|X e um conjunto e X /∈ X}

Agora(apos sua definicao) alguns conjuntos sao elementos de si proprios. Por exemplo,um conjunto de “pensamentos” e um pensamento. Desse modo, a definicao de Russellesta edequado com a descricao de Cantor. Russell, entao coloca a seguinte questao: S eum elemento de si proprio?

Se a resposta for “sim”, entao por definicao S /∈ S, uma contradicao.Se a resposta for “nao”, entao por definicao S ∈ S, uma contradicao.A existencia de S e contraditoria, e isto constitui o paradoxo de Russell. A aborda-

gem axiomatica para a teoria dos conjuntos diz que o significado real do paradoxo acimaesta em que nao existe conjunto universal absoluto. Se definirmos

S = {X ∈ U |X e um conjunto e X /∈ X}

onde U e um conjunto universal, o paradoxo desaparece. Como antes, a assertivaS ∈ S acarreta S /∈ S, uma contradicao. Mas, a conclusao agora e “S nao esta noconjunto universal”.

O efeito pratico da discussao acima e que os matematicos preferem definir um conjuntouniversal “construtivamente” e usar predicados que se referem a si proprio com muitaprecaucao. Entretanto, nao pretendemos rejeitar todas as definicoes que “se referem a sipropria”. Tais definicoes podem ser muito poderosas, como no caso das definicoes porrecursao.

Page 50: MATEMÁTICA DISCRETA -Benedito Melo

50 CAPITULO 3. CONJUNTOS, FUNCOES E RELACOES

Conjuntos difusos

Ja pode ter ocorrido a algum de nos descobrir que existem algumas colecoes de coisas quesao de interesse, mas nao sao “bem definidas”. Por exemplo, considere as pessoas quevoce conhece e pratica rodeio. Isto significa regularmente, uma vez ao ano, uma vez porsemana ou o que? Que nıvel de treinamento e exigido de uma pessoa para que ela alegueser capaz de rodeiar? A descricao “as pessoas que voce conhece que pratica rodeio” naodefine um conjunto.

Em 1965, Zadeh introduziu a ideia de conjuntos difusos, com o objetivo de lidar comcolecoes cujos membros sao mal-definidos. Ele definiu um “grau” ou “nıvel” de membrosde um conjunto difuso(fuzzy set) sobre uma escala de 0 a 1. Esta abordagem podeser pensado como uma extensao da ideia da funcao caracterısta como descricao de umconjunto.

3.3 Funcoes

Um programa de computador frequentemente se comporta como uma funcao. A entradade um programa pode ser pensado como o ‘x’ numa funcao e a saıda com o unico ‘y’ as-sociado com o x pela funcao. A propriedade da “unicidade” e importante. Normalmente,seria inaceitavel ter diferentes saıdas para a mesma entrada, nas execucoes separadas deprogramas.

Pode acontecer que para certas entradas um programa nao forneca uma saıda. Porexemplo, ele pode entrar em “loop”(laco) indefinidamente ou parar prematuramente. Parauma funcao a situacao correspondente seria a possibilidade de que para algum valor de ‘x’a funcao nao gere um valor ‘y’. Para permitir esta possibilidade, definimos uma funcaoparcial. Portanto, y =

√x, x ∈ R seria uma funcao parcial. Se a funcao puder ser avaliada

para todo ‘x’ ela sera chamada total. Uma funcao total tem todas as propriedades de umafuncao parcial(e portanto e uma funcao parcial) com a propriedade adicional de que paracada ‘x’ existe um ‘y’. Por exemplo, y = x2, x ∈ R e uma funcao total. Quando, porbrevidade, daqui por diante, a palavra “funcao” for usada, ela significara funcao parcial.Uma funcao tem tres componentes:

• um conjunto, chamado a fonte da funcao.

• um conjunto, chamado contradomınio ou alvo da funcao.

• uma regra que identifica alguns pares ordenados (x,y), onde x ∈ fonte e y ∈contradomınio, como pertencentes a funcao. Para cada x o correspondente y eunico.

O domınio da funcao e o conjunto dos ‘x’(os primeiros elementos dos pares ordenados),e portanto e um subconjunto da fonte. A imagem da funcao e o conjunto dos ‘y’(os

Page 51: MATEMÁTICA DISCRETA -Benedito Melo

3.3. FUNCOES 51

segundos elementos dos pares ordenados), e portanto e um subconjunto do alvo. Se odomınio da funcao for o mesmo que o conjunto fonte, a funcao e total.

A definicao acima nao restringe a fonte e o alvo a conjuntos de numeros.A “regra” pela qual os elementos (x) do domınio sao casados com os elementos (y) do

contradomınio nao foi definida formalmente. A regra pode ser dada como uma expressaopara avaliar y, para cada x, ou, simplesmente, como uma tabela de pares.

Num primeiro contacto com funcoes pode ficar a impressao de que a regra e a funcao.Por exemplo, algumas pessoas falam de(despreocupadamente)

y = 2x2 + 3x + 5

como uma funcao. Com certeza 2x2 + 3x + 5 e uma expressao pela qual y pode sercalculada, para cada x no domınio. Mas, a visao moderna e que a funcao e o conjuntodos pares (x,y).

A expressao acima pode ser avaliada de varias maneiras. Por exemplo:

x× (x× 2 + 3) + 5 (1)ou (2× x× x) + (3× x) + 5 (2)

As expressoes (1) e (2) representam dois algoritmos distintos para a avaliacao de yem x. Para nos, a distincao e importante porque o primeiro metodo de avaliacao contemmenos cinco operacoes que o segundo. Num segundo momento abordaremos eficienciasde algoritmos.

A seguir definiremos formalmente funcao parcial e descreveremos suas propriedades.

Definicao 7 Uma funcao parcial, f , de A em B e um subconjunto do produto cartesianoA× B, no qual para cada (x,y) em f, o segundo elemento e unico para cada x. Isto e, se(x, y1) ∈ f e (x, y2) ∈ f entao y1 = y2.

O domınio de f e {x|(x, y) ∈ f}, que e um subconjunto de A. O conjunto A e chamadoa fonte de f.

A imagem de f e {y|(x, y) ∈ f}, que e um subconjunto de B. O conjunto B e chamadoo contradomınio ou alvo de f.

Um procedimento para a avaliacao de f em x, para cada x no domınio de f e chamadoum algoritmo para f.

Exemplo 35 O subconjunto de N× N, f = {(1, 1), (2, 1), (3, 2)} e uma funcaoparcial de N em N. O subconjunto g = {(1, 1), (1, 2)} nao e uma funcao par-cial. Domınio de f = {1, 2, 3} e imagem de f = {1, 2}. Cada elemento(x)do domınio e emparelhado(casado) com um unico elemento(y) da imagem. Aregra para f e exatamente uma tabela de pares.

Page 52: MATEMÁTICA DISCRETA -Benedito Melo

52 CAPITULO 3. CONJUNTOS, FUNCOES E RELACOES

Se f e uma funcao parcial de A em B escreveremos

f : A −→ B

Exemplo 36 Uma funcao parcial para o ”maximo divisor comum” pode serdefinida usando o algoritmo ja definido em outro modulo. Um algoritmo po-de ser chamado fornecendo seu nome e providenciando valores de entrada.Entende-se, entao, que o algoritmo retornara a saıda correta, para a entradafornecida. Portanto, o algoritmo apresentado naquele modulo, digamos M, talque M(a,b), onde a e b sao inteiros positivos devolve o inteiro positivo d, comd = mdc(a, b).

A funcao parcial mdc e definida por:

mdc : Z× Z −→ Z

mdc(m,n) =

m se n = 0, m 6= 0n se m = 0, n 6= 0

algoritmo M(|m|, |n|) se m 6= 0, n 6= 0

Para este exemplo, o domınio do mdc = Z× Z − {(0, 0)}, que nao e igual afonte, indicando que esta funcao nao e total. Imagem mdc = {d|d > 0}

A imagem de f em x e o elemento (y) casado com x pela funcao, escrito f(x). Escre-vemos:

y = f(x) e dizemos que y e igual a f de x, em x

e

f : x 7→ y e dizemos que f mapeia x em y

Propriedades de uma funcao

Se o domınio de f = A, dizemos que f e uma funcao total(ou mapeamento).A funcao f diz-se sobre(ou que f e sobrejetora) B se a imagem de f e igual a B.A funcao f diz-se injetiva(ou 1-1) quando, dado qualquer par x1, x2 no domınio de f:

se f(x1) = f(x2), entao x1 = x2.

Se o domınio de uma funcao e alterado, entao os pares da funcao sao alterados, e peladefinicao acima a propria funcao e alterada.

Infelizmente, existem variacoes na terminologia usadas por autores diferentes paradescrever funcoes e suas partes. E recomenedavel checar as definicoes quando se consultarlivros diferentes.

Page 53: MATEMÁTICA DISCRETA -Benedito Melo

3.3. FUNCOES 53

Exemplo 37 Considere a funcao quadrado cuja regra e:

quadrado(x) = x2

se o domınio e R, entao a funcao nao e injetiva(contra exemplo: (−2)2 =(+2)2 = 4).

Entretanto, se o domınio for restrito a R+(o conjunto dos numeros reais po-sitivos) a nova funcao e injetiva.

Exemplo 38 Identificar o domınio, fonte e imagem da funcao:

raızQuadrada : N −→ N

raızQuadrada(n) = n2

O domınio e o conjunto dos quadrados perfeitos, {0, 1, 4, 9,...}. A fonte e oconjunto dos numeros naturais, N. A imagem e tambem N. A funcao e umafuncao parcial sem ser total, e injetiva e sobre N.

Exemplo 39 Explique porque a seguinte funcao e total.

soma : N× N −→ N

soma(x, y) = x + y

Esta funcao e total porque esta definida para todos os pares de entradas.

Exemplo 40 Defina a funcao valor absoluto:

abs : R −→ R

abs(x)=|x| ={

x se x ≥ 0−x se x < 0

Usando notacao de conjunto.

abs : R× R −→ R

abs(x) = {(x, y)|x ≥ 0 e y = x) ou (x < 0 e y = −x)}A funcao abs() nao e injetiva.Um contra exemplo que comprova esta assertiva e “abs(2) = abs(-2) = 2”. A imagem

e o conjuntos dos reais nao negativos, um subconjunto proprio dos reais.

Page 54: MATEMÁTICA DISCRETA -Benedito Melo

54 CAPITULO 3. CONJUNTOS, FUNCOES E RELACOES

Exemplo 41 predecessor(n) = {(n + 1, n)|n ∈ N}e uma funcao parcial de N em N. Ela nao e uma funcao total porque predecessor(0)

nao esta definido.

Exemplo 42

metade = {(2n, n)|n ∈ N}e uma funcao parcial de N em N. Nao e total pois, por exemplo, metade(3) nao esta

definido.

Exemplo 43 f : R −→ R, f(x) = 2x + 1e 1-1 e sobre, poispor exemplo,se 2x1 + 1 = 2x2 + 1, entao x1 = x2. E, claro, a imagem e todo R.

Definicao 8 (Composicao) Dadas as funcoes f : A −→ B e g : B −→ C a funcaocomposta g ◦ f e definida para todos os x para os quais f(x) e g(f(x)) existem, por

g ◦ f : A −→ Cg ◦ f(x) = g(f(x))

Exemplo 44 Dados f : Z −→ Z, f(n) = 2n + 1 e

g : Z −→ Z, g(n) = n2

achar a funcao composta g ◦ f .

g ◦ f(n) = g(f(n)) = g(2n + 1) = (2n + 1)2

Observe que o calculo procede do parentese interno para o mais externo, avaliando pri-meiro f. A variavel n e chamado uma variavel livre.

Exemplo 45 Seja R+o conjunto dos numeros reais positivos .

Dadas as funcoes f, g : R+ −→ R+ onde f(x) = bxc, g(x) =√

x. Entaof ◦ g 6= g ◦ f.

Para que f ◦ g e g ◦ f fossem iguais seria necessario mostrar que f ◦ g(x) =g ◦ f(x) para todo x em R+. Para mostrar que elas nao sao iguais e suficientemostrar que elas nao sao iguais para somente um valor de x em R+, isto e,fornecer um contra exemplo.

f ◦ g(3.5) = f(g(3.5)) = f(1.8708) = 1

g ◦ f(3.5) = g(f(3.5)) = g(3) = 1.7321

Portanto, f ◦ g 6= g ◦ f .

Page 55: MATEMÁTICA DISCRETA -Benedito Melo

3.3. FUNCOES 55

Definicao 9 (Identidade) A funcao identidade I e definida por

I : A −→ BI(x) = x

Teorema 3 (Funcao inversa) Se a funcao f : A −→ B e injetiva e sobre, entao existe afuncao f−1 tal que

f−1 : B −→ A,

chamada a inversa de f, para o qual

f ◦ f−1 = I = f−1 ◦ f.

Exemplo 46 A funcao exponencial (ex) e uma funcao injetiva de R sobre R+, o conjuntodos reais positivos. A funcao logarıtmica (lnx) e uma funcao injetiva de R+ sobre R.

Para aqueles valores de x onde ambas as funcoes estao definidas(isto e, para x > 0),temos:

lnex = x = elnx

e portanto as funcoes sao inversas uma da outra.

Definicao 10 (Operacao) Uma operacao sobre um conjunto A e uma funcao

A× A× ...× A −→ A

com domınio A× A× ...× A.Uma operacao binaria sobre A e uma funcao A× A −→ AUma operacao unaria sobre A e uma funcao A −→ A.

Exemplo 47 A multiplicacao e uma operacao binaria sobre o conjunto dos numerosreais.

Exemplo 48 “Troque sinal” e uma operacao unaria sobre o conjunto dos numeros reaisdefinida por

negacao(x) = (−1)× x, para todo x em R.

Exemplo 49 A intersecao e uma operacao binaria sobre o conjunto potencia de umconjunto A.

Page 56: MATEMÁTICA DISCRETA -Benedito Melo

56 CAPITULO 3. CONJUNTOS, FUNCOES E RELACOES

3.4 Relacoes

Quando observamos uma ligacao entre diferentes objetos podemos dizer que existe algu-ma relacao entre eles. A nocao comum de relacionamento familiar pode ser facilmenteestendida. Considere a relacao “pai de”.

pedro(x) e pai de maria(y1), jorge(y2),.. e um exemplo onde a relacao tem variospares (x, y1), (x, y2) com o mesmo primeiro elemento e diferentes segundos elementos. Ospares (pedro,maria), (pedro,jorge) pertence a relacao “pai de” . Em matematica a palavrarelacao pode ser vista como uma generalizacao de funcao, que, agora, e uma relacao comum unico primeiro elemento.

Definicao 11 (Relacao) Uma relacao(binaria) de um conjunto A num conjunto B e umsubconjunto R de A × B. Dizemos que x esta relacionado com y e escrevemos xRy see somente se (x, y) pertence a R. Podemos dizer que xRy e verdadeira se e somente se(x, y) pertence a R.

Uma relacao binaria sobre A e uma relacao binaria de A em A.

Exemplo 50 A = {1, 2, 3, 4}, B = {1, 2, 3}. A relacao R e definida por xRy se esomente se x < y.

R = {(1, 2), (1, 3), (2, 3)} = {(x, y) ∈ A×B|x < y}

Exemplo 51 A = B = Z. R e definido por xRy = t se e somente se x - y e par.

R = {(x, y) ∈ Z× Z|x− y = 2k, para algum k}

Neste exemplo, o conjunto de todos pares, (x,y), tal que ..., e infinito.

A relacao no exemplo 51 , acima, e a “congruenica modulo 2”

Congruencia modulo m

Num exercıcio de um outro modulo, Zm(m ≥ 2) foi definido como o conjunto dos numeros{0, 1, 2, ..., (m − 1)} junto com certas operacoes binarias de adicao e multiplicacao. Osnumeros em Zm sao, de fato, os restos possıveis quando um inteiro e dividido por m.

Definicao 12 Um par de inteiros a, b, diz-se congruentes modulo m se e somentese tem o mesmo resto quando dividido por m.

Escreveremos a ≡ b mod m e dizemos que a e congruente a b modulo m.

Page 57: MATEMÁTICA DISCRETA -Benedito Melo

3.4. RELACOES 57

Exemplo 52 17 ≡ 12 mod 5. ( Em cada caso o resto e 2).

Exemplo 53 18 ≡ −3 mod 7. (Em cada caso o resto e 4).

Exemplo 54 16 ≡ 0 mod 16; 14 ≡ −2 mod 16. Tais propriedades sao usadas nasrepresentacoes complementos de dois de inteiros, em palavras de n-bits.

Teorema 4 Os inteiros a, b sao congruentes modulo m se e somente se a - b = km, paraalgum inteiro k.

Prova:

1. Como a, b sao congruentes modulo m, segue que

a = q1m + r e b = q2m + r

para q1, q2, r ∈ ZPortanto, a - b = m(q1−q2), onde q1−q2 e um inteiro. Escolha k como sendoq1 − q2, entao

a− b = km

2. Dado a - b = km.

Divida b por m para obter b = qm + r e 0 ≤ r < |m|Entao a - b = a - (qm + r)

= km (dado)Portanto a = (qm + r) + km

= (q + k)m + r

Portanto a e b tem o mesmo resto (r) quando dividido por m.

Para um m dado, se a ≡ b mod m entao os pares (a,b) formam um subconjunto deZ× Z, que e uma relacao sem ser uma funcao. Para ver que a proposicao “congruenciamod m” nao e uma funcao seja 17 ≡2 mod 5 e 17 ≡ 12 mod 5. Temos dois pares con-gruentes com o mesmo primeiro elemento e diferentes segundos elementos. Congruenciamodulo m e uma relacao binaria sobre Z.

A congruencia modulo 5 efetua uma particao dos inteiros em cinco classes. As classessao os subconjuntos dos inteiros congruentes a 0, 1, 2, 3, 4, respectivamente. Se efetuar-mos operacoes tais como adicao e multiplicacao sobre esses inteiros modulo 5, entao aaritmetica pode ser efetuada usando os representantes 0, 1, 2, 3, 4 para membros de cadaclasse. Por exemplo,

17 + (−2) ≡ 2 + 3 ≡ 5 ≡ 0 mod 5

Page 58: MATEMÁTICA DISCRETA -Benedito Melo

58 CAPITULO 3. CONJUNTOS, FUNCOES E RELACOES

Relacoes de equivalencia

A relacao “congruente modulo 7” efetua uma particao dos dias do ano em 7 classes,segunda feira, terca feira, quarta feira, quinta feira, sexta feira, sabado e domingo. Porexemplo, o dia 178 e o dia 241 do ano sao o mesmo dia da semana, pois

178 ≡ 3 mod 7 241 ≡ 3 mod 7

(Em 1991 os dias 178 e 241 sao os mesmos)Por outro lado, a relacao “e um amigo” nao determina uma particao no conjunto das

pessoas, formando os subconjuntos onde todos sao amigos. Por exemplo, suponha que a, be b, c sao amigos mas que a e c nao sejam. Os subconjuntos de {a,b,c} onde esta definidaa relacao de amizade sao A1 = {a, b} e A2 = {b, c}. Mas essa divisao nao e uma particao,pois A1 ∩ A2 6= ∅.

Gostarıamos de saber que propriedades adicionais sao necessarias de modo que umarelacao sobre um conjunto induza uma particao sobre este.

Para evitar o problema que acontece na relacao “e um amigo de” precisamos ter apropriedade “se a esta na relacao com b e b esta na relacao com c entao a esta na relacaocom c”. Esta propriedade e chamada propriedade transitiva.

Alem disso, e preciso mais duas outras propriedades para que a relacao induza umaparticao sobre seu conjunto. Cada elemento do conjunto deve pertencer a sua propriacelula da particao, e portanto ele deve esta em relacao com si proprio. Esta e a chamadapropriedade reflexiva.

Se um elemento x esta em relacao com y, entao eles devem estar na mesma celulada particao e portanto y deve esta em relacao com x. Esta e chamada a propriedade dasimetria.

Formalmente:

Definicao 13 (Relacao de equivalencia) Uma relacao binaria R sobre um conjunto A e:

1. reflexiva se xRx para todo x em A;

2. simetrica se xRy implica yRx, para todo x, y em A;

3. transitiva se xRy e yRz implica xRz, para todo x, y, z em A.

Uma relacao com essas tres propriedades e uma relacao de equivalencia.

Definicao 14 (Classe de equivalencia) Seja R uma relacao de equivalencia sobre umconjunto A. Para cada x em A, a classe de equivalencia de x, sob R, e definida por

[x] = {s ∈ A|sRx}

Page 59: MATEMÁTICA DISCRETA -Benedito Melo

3.4. RELACOES 59

Teorema 5 (Particao) O conjunto de todas as classes de equivalencia de A, sob umadada relacao de equivalencia, forma uma particao de A.

Exemplo 55 A relacao “comeca com a mesma letra” e uma relacao de equi-valencia sobre o conjunto de todas as palavras do Portugues. Existem 23classes de equivalencia, que sao:

“as palavras comecando com a”

“as palavras comecando b”

. . .

O conjunto das classes de equivalencia constitui uma particao das palavras dalıngua portuguesa.

Exemplo 56 A congruencia modulo p e uma relacao de equivalencia.

1. x ≡ x mod p, pois x - x = um multiplo de p.

(propriedade reflexiva)

2. se x ≡ y mod p, entao y ≡ x mod p

(propriedade simetrica)

pois, se x - y = qp entao, y - x = -qp, um multiplo de p.

3. se x ≡ y mod p e y ≡ z mod p, entao x ≡ z mod p.

(propriedade transitiva)

Prova:

x - y = qpy - z = rp

(adicionando)x - z = (q + r)p um multtiplo de pIsto e = z mod p

Portanto a congruencia modulo p e uma relacao de equivalencia.

A relacao binaria “congruencia modulo p” sobre Z, parte Z em p classes de equi-valencia, pelo teorema da particao. Pelo teorema 4.1 as classes de equivalencia sao osconjuntos de inteiros congruentes a cada um dos 0, 1, ..., p -1, modulo p.

Exemplo 57 A relacao “igual” e uma relacao de equivalencia sobre o conjunto Q.As classes de equivalencia sao os conjunto de numeros racionais iguais.Por exemplo, {...-2/-3, 2/3, 4/6, 6/9, 8/12, ... } e uma classe de equivalencia.

Page 60: MATEMÁTICA DISCRETA -Benedito Melo

60 CAPITULO 3. CONJUNTOS, FUNCOES E RELACOES

Exemplo 58 Uma relacao ρ e definida sobre os inteiros por aρb = t se e somente se a -b e par. Mostremos que ρ e trasitiva.

Prova: O objetivo e mostrar que se aρb e bρc, entao aρc.

a - b e par. b - c e par.

Portanto, (a - b) + (b - c) = par + par = par.

Portanto a - c e par e aρc.

Logo ρ e transitiva.

Relacoes de ordens parciais

A ideia de que os objetos podem ser colocados em ordem e muito importante em ma-tematica. O ponto e que a primeira motivacao para a definicao de ordem vem da relacao“menor ou igual que” e nao de “menor que”. Paul Halmos(1961, pg 54)2 diz:

Nao existe razao profunda para isso. Acontece que a generalizacao de “menorou igual que” ocorre mais frequentemente e e mais amigavel ao tratamentoalgebrico.

Definicao 15 (Antisimetria) Uma relacao R sobre um conjunto A e antisimetrica separa todos x, y em A, se xRy e yRx entao x = y.

Se a relacao e reflexiva, antisimetrica e trasitiva entao ela e uma ordem parcial.

Definicao 16 (Ordem parcial) Uma ordem parcial sobre um conjunto A e uma relacaoque e reflexiva, antisimetrica e transitiva. Se alem disso, para todo par x, y em A, xRyou yRx, entao R e uma ordem total sobre A.

Exemplo 59 Devide e uma ordem parcial sobre o conjunto A = {1, 2, 3, 4, 5, 6}. Naoe uma ordem total pois alguns pares nao sao “comparaveis”. Por exemplo, 3 divide 5 e fe 5 divide 3 e f.

Exemplo 60 A relacao “e um subconjunto de ” e uma ordem parcial sobre o conjuntopotencia {a, b, c, d }. A relacao nao e uma ordem total, pois para um par de conjuntostais como {a, b} e {b, c}, a relacao nao se da em nenhuma direcao.

Exemplo 61 Provemos que divide e uma ordem total sobe o conjunto

A = {1, 2, 4, 8, 16}

Prova:

2Halnos, P.R.,(1961), Naive set theory, Van Nostrand.

Page 61: MATEMÁTICA DISCRETA -Benedito Melo

3.4. RELACOES 61

b = ma e a = nb, para alguns inteiros m, n.

Portanto, b = mnb(substituicao) e mn = 1.

Agora m, n sao inteiros, logo m = n = 1 ou m = n = -1.

Mas todos os membros de A sao positivos, portanto a = b.

Portanto, divide e antisimetrica.

A prova deve estabelecer, tambem, que divide e reflexiva e transitiva. Paraprovar que divide e uma ordem total, devemos mostrar que para cada par a,b escolhidos em A, ou a divide b ou b divide a.

A relacao no exemplo anterior e uma ordem total sobre A.Se uma ordem total esta definida sobre um conjunto, entao todo par de elementos no

conjunto pode ser comparado, decidindo qual dos dois e maior qual menor. Tal conjuntopode ser um conjunto “ordenado”. Um conjunto, S, com uma relacao de ordem parcialρ sera denotado por (S,ρ). Um conjunto ordenado de numeros diz-se contınuo se paracada par de numeros distintos existe um terceiro que esta entre eles.

Definicao 17 (Princıpio da boa ordem) Um conjunto ordenado diz-se bem ordenado see somente se todo subconjunto nao vazio tem um primeiro elemento.

Por exemplo, O conjunto ordenado (N) e bem ordenado. Qualquer subconjunto dosnumeros naturais tem um menor elemento. Por exemplo, o conjunto dos numeros naturaismenor que 2 tem 0 como o primeiro elemento.

Considere o conjunto ordenado (Z,≤). Alguns subconjunto tem um primeiro elemento,por exemplo, {-2, 3, -4}. Mas existem conjuntos tais como, por exemplo, o conjunto dosinteiros menor que 2 , que nao tem o menor elemento. Segue que o conjunto dos inteiroscom a relacao de ordem “menor que” nao e bem ordenado. A propriedade da boa ordem,apesar de sua simplicidade, e muito importante. Se um conjunto possuir essa propriedadeentao e possıvel usar inducao matematica, um metodo poderoso de fazer provas, paraproposicoes definidas sobre o conjunto.

Sequencias

Duas estruturas que podem ser uteis para especificar colecoes de objetos ou elementos sao

• conjuntos, e

• sequencia.

Num conjunto a ordem nao e importante. Assim {a,b, c} = {c, a, b}. Mas numasequencia, a ordem e uma propriedade exigida. A sequencia a1, a2, a3 e a2, a3, a1 sao

Page 62: MATEMÁTICA DISCRETA -Benedito Melo

62 CAPITULO 3. CONJUNTOS, FUNCOES E RELACOES

diferentes. Podemos falar, por exemplo, de a3 como o terceiro membro da sequencia a1,a2, a3, a4.

Uma maneira de veicular essa ideia e definir uma sequencia como uma aplicacao, oufuncao cujo domınio e um subconjunto de N.

Definicao 18 Uma sequencia e uma funcao cujo domınio e o conjunto dos numerosnaturais , N = {0, 1, 2, 3,...}, ou as vezes, {m, m+1,...,n} onde m usualmente e 1.

Uma sequencia pode ser finita, caso em que o domınio e {m, m+1,...,n} e novamentee usual que m seja 0 ou 1.

Algumas estruturas muito frequentes em computacao:

string uma sequencia de caracteres de um alfabeto.(as vezes chamada palavra ou cadeia).

lista uma sequencia de registros(que por sua vez podeser tambem uma lista).

registo uma sequencia de elementos de dados.texto uma sequencia de palavras alternando com caracteres de

{espaco, vırgula, ponto,...}

Para alguns objetivos, as listas e os registros podem, com grande utilidade, ser pensadoscomo conjuntos.

As sequencias podem ser descritas:

1. escrevendo os membros da sequencia.

Exemplo: 1, 3, 5,..., 99(uma sequencia finita).

2. por uma formula, fornecendo o termo geral.

exemplo: a1, a2, ..., an, ...onde an = 2n− 1(uma sequencia infinita).

3. por um procedimento recursivo.

exemplo 1: A sequencia a1, a2, ..., an, ...onde

an =

{1 se n = 1an−1 + 2 caso contrario

A formula gera a sequencia

1, 3, 5, 7, ...

onde cada termo e obtido de seu predecessor na sequencia adicionando 2.

Page 63: MATEMÁTICA DISCRETA -Benedito Melo

3.4. RELACOES 63

exemplo 2: A sequencia

x0, x1, x2, ..., xn, ...

e definida pela formula xn = 3xn−1 − 2xn−2, para todo n ≥ 1 e com a condicaoinicial x0 = 0 e x1 = 1. A tabela seguinte mostra o calculo dos primeiros cincotermos

n xn

0 01 12 2× 1− 2× 0 = 33 3× 3− 2× 1 = 74 3× 7− 2× 3 = 15

A sequencia e 0, 1, 3, 7, 15,...

String

Um caractere e um sımbolo como qualquer um dos a, b, 1, 2, *, (, .., .Um alfabeto e um conjunto de caracteres, como, por exemplo:

1. o alfabeto de parenteses e {(,)};2. o alfbeto binario e {0,1};3. o alfabeto de dicionario e {a,b,c,...,z};4. o alfabeto de caracteres para um teclado e o conjunto de caracteres produzidos ope-

rando as teclas no teclado.

Uma string(cadeia) e uma sequencia de caracteres de um alfabeto. Normalmente oscaracteres sao colocados lado a lado, nao separados por vırgulas(dizemos que sao justa-postos). O comprimento de uma string e o numero de caracteres nela. As vezes umastring e chamada uma palavra, embora necessitemos ter algum significado na linguagemordinaria.

Exemplo 62 110, 00001, e 011010 sao strings do alfabeto binario. Seus comprimentosao 3, 5 e 6, respectivamente.

Exemplo 63 ab, aa, bc sao strings(cadeias) de comprimentos dois do alfabeto {a, b, c}.O conjunto de strings de comprimento n de um alfabeto A e denotado por An.

Page 64: MATEMÁTICA DISCRETA -Benedito Melo

64 CAPITULO 3. CONJUNTOS, FUNCOES E RELACOES

Exemplo 64 O conjunto de strings de comprimento 2 do alfabeto binario {0, 1} e:

A2 = {11, 01, 10, 11}

Exemplo 65 O conjunto de strings de comprimento 2 do alfabeto {a, b, c} e:

{aa, ab, ac, ba, bb, bc, ca, cb, cc}

Um string de comprimento 0 e definido como sendo o string vazio escrito λ, nestasnotas. Existe exatamente um string vazio. Observe que ‘λ′ nao e 0 ou o caractere de“espaco” e λ /∈ A, para todo alfabeto A. A0 e o conjunto que consiste de λ.

Um conjunto universal adequado para discussao de strings seria o conjuntos dos stringsde todos os comprimentos de um alfabeto dado.

Definicao 19 (Fecho) O fecho(Kleene) do alfabeto A e o conjunto de todas as strings,de todos os comprimentos, que podem ser construıdas dos caracteres de A:

A∗ = A0 ∪ A1 ∪ A2 ∪ ... =∞⋃i=0

Ai

O conjunto de todas as strings nao vazias de A e definida por

A+ = A1 ∪ A2 ∪ ... =∞⋃i=1

Ai

Os conjuntos A∗ e A+ sao conjuntos universais possıveis para strings. Eles sao defi-nidos construtivamente, nao correndo o risco, portanto, de paradoxo.

Definicao 20 (Concatena) A operacao binaria concatena sobre A∗ e uma funcao deA∗ × A∗ em A∗ definida por

concatena(α, β) = αβ

para toas as strings α, β ∈ A∗.

Exemplo 66 concatena(011,01) = 01101

Exemplo 67 concatena(alfa, beto) = alfabeto.

Page 65: MATEMÁTICA DISCRETA -Benedito Melo

3.5. EXERCICIOS 65

3.5 Exercıcios

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? Expliquesua 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 numero de inteiros positivos menor ou igual que 100 que sao ımpares ou oquadrado de um inteiro. O conjunto de tais inteiro esta bem definido? 25 pertencea ele?

4. Dois dados sao arremecados. Cada um e numerado 1,2,...,6 de modo que o conjuntode todas as saıdas, S, possıveis e {(1,1),(1,2),(2,1),...,(6,6)}. O que e n(S)? PartirS em subconjuntos nos quais a soma dos dois dados sejam a mesma.

5. Para todos conjuntos A, O conjunto potencia de A, escrito P(A), e definido comosendo o cnjunto de todos os subconjuntos de A.

(a) Dado A = {a,b,c} achar P(A).

(b) Dado n(S) = k, achar o numero de elementos em P(S).

6. Uma tela de 80 colunas e 25 linhas esta definida pelo conjunto

S = {(c, r)|(c, r) ∈ N× N e 1 ≤ c ≤ 80 e 1 ≤ r ≤ 25}

onde c representa o numero de colunas e r o numeros de linhas de uma “posicao decaracteres” ou “ponto” sobre a tela. S e o conjunto universal para esta questao.

As janelas W1,W2 sao definidas por

W1 = {(c, r)|20 ≤ c ≤ 40 e 10 ≤ r ≤ 20}W2 = {(c, r)|30 ≤ c ≤ 50 e 5 ≤ r ≤ 15}

Page 66: MATEMÁTICA DISCRETA -Benedito Melo

66 CAPITULO 3. CONJUNTOS, FUNCOES E RELACOES

Defina os conjuntos (a) W1 ∪W2 (b) W1 −W2, da mesma maneira.

7. (O paradoxo do barbeiro) Numa certa cidade existia um barbeiro. O barbeirobarbeava todos os homens que nao se barbeavam a si proprios. Seja B o conjuntode todos os homens barbeados pelo barbeiro. B esta bem definido?

8. Identifique as funcoes entre as seguintes relacoes.

(a) {(0,0),(1,1),(2,2),(3,2)}(b) {(0,0),(0,-1)}

9. A funcao media e definida por:

media : N× N −→ Nmedia(x, y) = x+y

2

(a) Calcule media(8,12)

(b) media e uma funcao total?

(c) Achar o domınio de media.

(d) media e uma funcao injetiva?

10. N = {0, 1, 2, 3....}menos : N× N −→ Nmenos(x, y) = x− y se x ≥ y ; 0 caso contrario

menos e uma funcao total? Tem inversa? Se nao for o caso, por que? E sobre?

11. (Use uma calculadora para esta questao e a proxima). Para esta questao defina oconjunto P = {x ∈ R|x ≥ 0}. A funcao f e definida por:

f : P −→ Pf(x) = f(x) =

√x

A funcao g e definida por:

g : R −→ Pg(x) = ex

Page 67: MATEMÁTICA DISCRETA -Benedito Melo

3.5. EXERCICIOS 67

Calcule (a) f(7) (b) g ◦ f(7) (c) g(7) (d) f ◦ g(7).

12. Defina a funcao f pela funcao calculadora ln, e a funcao g por pela calculadora ex.

Achar f ◦ g(3.6). Comente sua resposta.

13. Explique porque, se n e um inteiro ımpar, entao

d(n + 1)/2e = (n + 1)/2

14. Uma funcao f : A −→ B diz-se “uma-uma” se e somente se,

para todo x, y ∈ A se x 6= y entao f(x) 6= f(y)

Mostre que a funcao

g : Z −→ Z8g(n) = n mod 8

nao e uma - uma.

15. A funcao sucessor e definida por

sucessor : N −→ Nsucessor(n) = n + 1

A funcao sucessor e total? E uma - uma? E sobre? A funcao sucessor tem inversa?

16. A funcao g e definida sobre o conjunto Z7 = {0, 1, 2, 3, 4, ..., 6} por

g : Z7 −→ Z7

g(x) = 2x + 3 mod 7

(a) Achar o valor de g(0), g(1), g(3).

(b) g e uma funcao total?

Page 68: MATEMÁTICA DISCRETA -Benedito Melo

68 CAPITULO 3. CONJUNTOS, FUNCOES E RELACOES

(c) g e injetiva ?

(d) g tem inversa?

(e) g e sobre Z7?

17. A funcao f e definida sobre o conjunto Z16 = {0, 1, 2, ..., 15} por

f : Z16 −→ Z16

f(x) = x2 + 5 mod 16

(a) Achar o valor de f(0), f(1), f(4).

(b) f e total?

(c) f e injetiva?

(d) f tem inversa?

(e) f e sobre Z16?

18. (a) Mostre que 51 ≡ 6 mod 9.

(b) Mostre que 124 ≡ 7 mod 9.

(c) Mostre que 51 + 124 = 6 + 7 mod 9.

Os exercıcios acima ilustram dois teoremas que pedimos para que pedimos a demons-tracao:

(d) Prove que, se u ≡ v mod m e t ≡ w mod m

entao, u + t ≡ v + w mod m.

(e) Prove que, se u = abc10, onde a,b,c sao dıgitos de u representados na base 10,entao u ≡ a + b + c mod 9.

19. (a) Mostre que 27 ≡ 5 mod 11 e 35 ≡ 2 mod 11.

(b) Mostre que 27× 35 ≡ 5× 2 mod 11.

(c) Prove que, se u ≡ v mod m e t ≡ w mod m, entao u× t ≡ v × w mod m.

20. Uma relacao ρ e definida sobre os inteiros por aρb = t se e somente se a - b e par.

Quais sao as propriedades que ρ deve possuir para ser uma relacao de equivalencia?Prove essas propriedades para ρ.

Page 69: MATEMÁTICA DISCRETA -Benedito Melo

3.5. EXERCICIOS 69

21. Nesta questao o sımbolo ‘∧’ representa ‘e’ e o sımbolo ‘∨’ representa ‘ou’. Seja S oconjunto de todas as posicoes de tela definida 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 definida por

segue : S × S −→ B

(c1, r1) segue (c2, r2) =

{t se (c1 ≥ c2) ∧ (r1 = r2) ∨ (r1 > r2)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 umaordem parcial se verifica para segue? Escreva uma afirmativa do que deve serprovado para mostrar que segue satisfaz as propridades que voce alega.

22. A relacao “divide”(escrita ρ, nesta questao) e definida sobre os numeros naturaispor

aρb = t

se e somente se b = ka, para algum numero natural k e a 6= 0.

Prove que ρ e antisimetrica.

23. A relacao “potencia de”(escrita ρ, nesta questao) e definida sobre os inteiros por

aρb = t, se e somente se a = bn, para algum numero natural n.

Prove que ρ e antisimetrica. Quais das propriedades de ρ precisariam ser provadaspara mostrar que ela e uma ordem parcial?

24. A relacao divide e definida sobre o conjunto {3,9,27}. a divide b significa

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 a0, a1, ..., an, ..., onde

an =

{2 se n = 0an−1 + 2, senao

Page 70: MATEMÁTICA DISCRETA -Benedito Melo

70 CAPITULO 3. CONJUNTOS, FUNCOES E RELACOES

26. Liste os primeiros termos da sequencia

x0, x1, x2, ..., xn, ...

definida pela formula xn = 3xn−1 − 2xn−2, para todo n ≥ 1 e as condicoes iniciaisx0 = 0 e x1 = 1.

27. (a) Liste A3, o conjunto de todas as strings do alfabeto A, onde a = {0, 1}.(b) Concatene as strings α = cap, β = az.

28. As sequencias de inteiros {sn} {dn} sao construıdas como segue:

s1 = 1, d1 = 1. sn+1 = sn + dn, dn+1 = 2sn + dn, para n = 1, 2, 3, ..

(a) Calcule s4, d4.

(b) Calcule r = d4

s4.

(c) Ache a percentagem de erro relativo ao tomar r, de (b) acima, como uma apro-ximacao para

√2.

29. O conjunto universal para esta questao e

U = {s ∈ Z|1 < x < 101}

Os seguintes subconjuntos de U sao definidos:

Sk = {s|ke o maior fator primo de x}

(a) Descreva os conjuntos S5, S11.

(b) Qual e o valor de n(S41)?

Explique por que S2, S3, S5, ..., S97, formam uma particao de U.

Page 71: MATEMÁTICA DISCRETA -Benedito Melo

Capıtulo 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 apartir das leis logicas aceitas. Deveremos ser capazes de usar os quantificadores existenciale universal com predicados.

Logica e a ciencia do raciocınio. Nesta parte, estamos interessados, principalmente,com logica matematica, incluindo uma algebra de sımbolos logicos. A logica simbolicamoderna foi estabelecida por George Boole(1815-64) e outros para possibilitar o raciocınioseparado das ambiguidades possıveis e argumentos emotivos que podem estar presentesna linguagem comum. A ideia de um calculo universal “no qual todas as verdades doraciocınio seria reduzidas a uma especie de calculo” tem inıcio com Leibniz(1646-1716).Este sistema de logica simbolica, com sua algebra associada, foi aproveitado por aquelesque construiram os primeiros computadores, como um modelo de raciocınio correto queseria implementado por circuitos eletronicos.

Existem no mınimo seis razoes porque estudamos logica.

• No nıvel do hardware, o uso de logica simbolica pode simplificar enormemente osprojetos de circuitos “logicos” para implementar instrucoes.

• No nıvel de software, um conhecimento de logica simbolica ajuda no projeto deprogramas. Muitas linguagens de computadores usa variaveis booleanas e seus ope-radores associados. As tabelas verdades sao particularmente uteis para decidir seduas assertivas sao logicamente equivalentes.

• No nıvel da especificacao de algoritmos, a logica simbolica contribui com uma lingua-gem precisa. Embora ainda num estagio de desenvolvimento, existe uma promessade que a logica simbolica ajudara no projeto, prova de corretude e manutencao deprogramas.

71

Page 72: MATEMÁTICA DISCRETA -Benedito Melo

72 CAPITULO 4. LOGICA

• Varias linguagens de computadores sao baseadas em logica, por exemplo, Prolog.Muitos acreditam que as linguagens baseadas em logica tem vantagens na analise deinformacao num banco de dados.

• No raciocınio matematico e na construcao de provas matematicas, um estudo delogica pode ser util.

• No raciocınio comum, a logica pode ser util para esclarecer argumentos.

Proposicoes compostas e tabelas de verdade

Os objetos basicos de nossa discussao podem ser chamados assertivas ou proposicoes. Apropriedade essencial de uma arsertiva ou proposicao e que ela tem associada a si umrotulo(t) ou (v), mas nao ambos.

Exemplo 68 1. 6 e primo. 2. 5 e primo. 3. (−3 < 2). 4. Salvador e acapital do Brasil. 5. H2O e um acido. 6. O lucro da transacao e 10.000reais. As assertivas de 1. a 4. tem rotulos f, t, t, f. Para 5. e 6. deveremosconsultar um quımico 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 umasentenca composta a partir dos valores de verdade das sentencas elementares, tais comoaquelas listadas acima. A natureza exata das assertivas elementares pode ser deixada paraos especialistas no campo particular. As assertivas podem estar em qualquer “linguagem”,por exemplo, Ingles, Portugues, uma linguagem de programacao, um sistema matematicoou uma linguagem de inteligencia artificial. As sentencas elementares1 sao “atomicas”no sentido de que nao podem mais ser quebradas em componentes mais simples.

As letras p,q,r,s,...representam sentencas nao especificadas. Os sımbolos ¬,∧,∨,→,↔serao usados para representar(denotar) as operacoes pelas quais sentencas compostas saoconstruıdas a partir das sentencas mais simples. Esses sımbolos correspondem, comosera explicado mais adiante, respectivemente, aos conectivos, “nao”, “e”, “ou”, “se, ...,entao,..” e “se ... e somente se ...”.

As proposicoes compostas podem ser construıdas aplicando as operacoes sobre uma oumais proposicoes dadas. Um conectivo logico e definido pela sua tabela de verdade. Atabela de verdade de um conectivo mostra como o valor de verdade de uma proposicaocomposta, envolvendo o conectivo e as proposicoes elementares assim “compostas”ou “co-nectadas”, dependem dos valores de verdade das proposicoes mais simples. A assertivacomposta e avaliada para cada combinacao possıvel dos valores de verdade das assertivas

1Estamos usando como sinonimos os termos assertiva, sentenca e proposicao, embora num sistemalinguıstico mais elaborado, estes tres termos tenham significados diferentes.

Page 73: MATEMÁTICA DISCRETA -Benedito Melo

4.1. INTRODUCAO 73

atomicas no composto. O rotulo de verdade de um conectivo pretende, assim, refletir osignificado natural do nome do conectivo. Em alguns casos, entretanto, a mesma palavratem significados diferentes em contextos diferents e, portanto, nao e possıvel fazer com quea definicao da tabela de verdade de um conectivo represente todos os significados possıveisassociados a esse nome. A algebra da logica resultante e autoexplicativa no sentido deque ela fornece um sistema de logica completamente confiavel. No campo do projeto decircuitos 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 asentenca nao da nenhuma orientacao se acontecer de nao chover e nao hajarodeio.

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 deemergencia nao for acionado. O motorista pode parar o trem porque chegouna proxima estacao ou porque apareceu o sinal vermelho. Assim, a assertivanao da nenhuma indicacao do que acontecera caso o cordao de emergencianao seja acionado. Portanto, nao podera haver nenhuma reclamacao caso ocordao nao seja acionado, porem, mesmo assim o trem venha a parar.

Com os exemplos acima pretendemos mostrar que as palavras “se, ...,entao,...” temum significado preciso, ligeiramente diferente do significado em Portugues, dependendodo contexto. Entretanto, sera visto abaixo que “se ..., entao ...” tem um unico signficadopreciso quando definido em logica. E este significado que sera usado num computadorpara avaliar proposicoes compostas envolvendo conectivos logicos.

Nao (negacao)

Usaremos ¬p para representar a negacao da proposicao p. A “negacao” e definida pelatabela de verdade abaixo.

p ¬pt ff t

A negacao em nossa algebra pretende modelar a negacao na linguagem comum. Des-se modo, o sımbolo ¬ pode ser lido convinientemente como “nao”, t pode ser lido como“verdadeiro” e f como “falso”. Todas as combinacoes possıveis dos valores de verdadeestao listados numa coluna na esquerda sob p. A coluna na direita mostra os valores

Page 74: MATEMÁTICA DISCRETA -Benedito Melo

74 CAPITULO 4. LOGICA

correspondentes da proposicao ¬p. Existem duas linhas na tabela, pois a proposicao ele-mentar(atomica) p tem dois valores de verdade possıveis.

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 primeiralinha da tabela de verdade.

Exemplo 71 Mostrar que p e ¬(¬p) tem a mesma tabela de verdade.

p ¬p ¬(¬p)t f tf t f

As proposicoes p e ¬(¬p) tem valores de verdade identicos sobre cada linha databela verdade(compare as colunas 1 e 3). Dizemos que ¬(¬p) e logicamenteequivalente a p.

A proposicao ¬(¬p) normalmente e escrita ¬¬p, pois nao existe possibilidade de con-fundir seu significado.

A negacao pode ser vista como uma funcao que transforma proposicoes em proposicoes.

4.1.0.1 e(conjuncao)

Usaremos p∧q para representar a conjuncao (isto e, e) das proposicoes p e q. A conjuncaoe definida pela tabela de verdade abaixo.

p q p ∧ qt t tt f ff t ff 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 possıveis. Por isso a tabela deverdade tem quatro linhas. O operador ∧ mapeia(ou transforma) cada par de assertivasnuma 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 significa que as proposicoes p ∧ q e q ∧ p sao logicamente equivalentes.

Na linguagem comum pode existir diferencas nos siginificados dos diferentes usos de“e” .

Compare“ele ficou com febre e tomou um copo de agua”

Page 75: MATEMÁTICA DISCRETA -Benedito Melo

4.1. INTRODUCAO 75

com

“ele tomou um copo de agua e ficou febre”

A mudaca na ordem parece alterar o significado da assertiva porque associamos oconceito de tempo com cada evento na ordem em que ele foi mencionado. Pelo menossuspeitamos que o evento que foi mencionado primeiro influenciou 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 pt t tf f f

linha 1: quando p e t, p ∧ p e t ∧ t, que e t da tabela de verdade para “e”. Ovalor 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, eportanto p ∧ p e equivalente a p.

Exemplo 73 Mostrar que p ∧ ¬p e logicamente falso. Por isto queremossignificar que os valores de verdade de p ∧ ¬p sao todos f.

p (p) p ∧ p p ∧ ¬pt f f ff 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 ordemda 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 possıveis de suas pro-posicoes elementares e denominada uma contradicao.

Os proximos operadores modelam diferentes usos da palava “ou”. No contexto “umou outro ou ambos” dizemos que esta sendo usado o ou inclusivo. No contexto “ou um ouo outro, mas nao ambos”, dizemos que esta sendo usado o ou exclusivo.

Page 76: MATEMÁTICA DISCRETA -Benedito Melo

76 CAPITULO 4. LOGICA

ou(disjuncao)

Usaremos o sımbolo ∨ para representar o “ou inclusivo” construıdo das proposicoes p eq. O operador de “ou inclusivo” e definido pela tabela abaixo.

p q p ∨ qt t tt t tf t tf f f

Em nossa algebra, com o “ou inclusive” pretendemos modelar o conectivo “ou”, nalinguagem comum. O sımbolo ∨ pode ser lido por conveniencia por “ou”. O conectivo“ou” definido 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 enviea mensagem “arguivo(s) nao encontrado” e aborte(terminar sem resolver oproblema) a sessao”

Gostarıamos que a acao(de abortar) fosse executada se ou um arquivo ou ambos naofossem encontrados.

O operador ∨ mapeia pares de proposicoes numa proposicao.

Exemplo 74 Mostrar que p ∨ ¬p e logicamente verdadeira. Com isto que-remos significar que o valor verdade da proposicao p ∨ ¬p e t, em toda linhada tabela de verdade. (Mais adiante isto sera referido como a lei do terceiroexcluıdo.)

p (p) ¬p (p ∨ ¬p)t t f tf f t t

Avaliar p, em seguida ¬p, entao p∨¬p. Para cada valor de p, p∨¬p e t. Porisso concluimos que p ∨ ¬p e logicamente verdadeira.

Uma proposicao composta que tem o valor t, para todos os valores possıveis 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.

Page 77: MATEMÁTICA DISCRETA -Benedito Melo

4.1. INTRODUCAO 77

(a)

(esquerda) (direita)p q p ∧ q ¬(p ∧ q) ¬p ¬q (¬p) ∨ (¬q)t t t f f f ft f f t f t tf t f t t f tf f f t t t t

¬(p ∧ q) e logicamennte equivalente a ¬p ∨ ¬q, pois eles tem a mesma tabelade verdade, fttt.

(b)

(esquerda) (direita)p q p ∨ q ¬(p ∨ q) ¬p ¬q (¬p) ∧ (¬q)t t t f f f ft f t f f t ff t t f t f ff f f t t t t

¬(p ∨ q) e logicamente a ¬p ∧ ¬q porque ambas possuem a mesma tabela deverdade, ffft.

ou(exclusivo)

Usaremos ∨ para representar o conectivo “ou exclusivo”. Ele esta definido pela tabelaabaixo.

p q p∨qt t ft f tf t tf f f

O conectivo “ou exclusivo” pretende modelar o uso da palavra “ou” como aparece naseguinte 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”, ondep e q sao proposicoes. O operador condicional e definido pela tabela de verdade abaixo.

Page 78: MATEMÁTICA DISCRETA -Benedito Melo

78 CAPITULO 4. LOGICA

p q →t t tt f ff t tf f t

Em nossa algebra, o operador condicional pretende modelar o condicional na linguagemcomum. Entretanto, alguns leitores podem contestar a linha 3. Considere o seguinteargumento.

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 fentao 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 formasassociadas.

condicional reversa contrapositiva inversap q p→ q q → p ¬q → ¬p ¬p→ ¬qt t t t t tt f f t f tf t t f t ff 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 Brasılia”.

Seja q a proposicao “Eu moro no Brasil”.

A condicional p→ q diz, “Se eu moro em Brasılia entao eu moro no Brasil”.concordamos que isto e verdadeiro(a capital do Brasil e Brasılia).

A reversa q → p diz que, “Se eu moro no Brasil entao eu moro em Brasılia”e isto obviamente nao e verdadeiro.

Entretanto, a contrapositiva, ¬q → ¬p diz “Se eu nao moro no Brasil entaonao moro em Brasılia”, esta correto e e logicamente equivalente a condicionalacima

Page 79: MATEMÁTICA DISCRETA -Benedito Melo

4.1. INTRODUCAO 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 verdadeabaixo estabelece isso.

p q p→ q ¬p ∨ qt t t tt f f ff t t tf f t t

p se e somente se(bicondicional)

Os sımbolos “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 obicondicional.

p q p↔ qt t tt f ff t ff f t

Maneiras alternativas de estabelecer o condicional

Talvez porque gostemos muito de argumentar hajam muitas frases que veiculam o signifi-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 suficiente para q ou q enecessario para p.

O bicondicional p↔ q pode ser lido como “p se e somente se q” ou “p e necessario esuficiente para q”.

Omissao de parenteses(precedencias dos conectivos)

Na algebra comum, classificamos os sımbolos

+,−, ∗,÷

para evitar o uso excessivo de parenteses. Portanto, −3+4∗5 significa (−3)+ (4∗ 5),isto e, 17 e nao (−3 + 4) ∗ 5, isto e, 5.

Faremos o mesmo aqui informalmente. A classificacao e

Page 80: MATEMÁTICA DISCRETA -Benedito Melo

80 CAPITULO 4. LOGICA

¬∨, ∧→,↔

do mais baixo para o mais alto. A regra e que o conectivo mais baixo na classificacaose estende ao mais baixo escopo. Para preencher os parenteses ausentes, inicie com oconectivo mais baixo na classificacao e insira os parenteses mais proximos permissıveis,sem quebrar os parenteses existentes, e entao mova-se ao proximo conectivo de mais baixaclssificacao, e assim por diante.

Exemplos:

1. ¬p ∨ q significa ((¬p) ∨ q).

2. ¬p ∨ q → r ∧ s significa ((¬p) ∨ q)→ (r ∧ s)).

3. ¬p ∧ q ∨ r e ambıguo. E preciso parenteses para mostrar o que ele significa.

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 identificado com ‘×’ e ‘∨’ e identificadocom ‘+’. E comum × ter precedencia sobre +, em analogia com a aritmetica comum.Portanto, os estudantes de computacao desconfiam que o item 3 nao e ambıguo.

4.2 Raciocinando com hipoteses logicas

Um calculo de proposicoes e um processo com o qual raciocinamos ou computamos usan-do sımbolos. Para termos um “calculo” precisamos de “axiomas” ou fatos assumidos e“regras”, para manipular esses axiomas, a fim de produzir novos fatos. Um exemplo deum axioma e “p ∨ (¬p)” que e logicamente equivalente a t, para toda proposicao”. Umexemplo de uma regra e a “regra” da substituicao”, que nos permite substituir qualquerproposicao 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 deque cada axioma que assumirmos poderia ser estabelecido pela tabela de verdade.

Definicao 21 (Tautologia) Uma proposicao composta que tem valor t, para todos osvalores das proposicoes elementares, e chamada uma tautologia.

Page 81: MATEMÁTICA DISCRETA -Benedito Melo

4.2. RACIOCINANDO COM HIPOTESES LOGICAS 81

Definicao 22 (Contradicao) Uma proposicao composta que tem o valor f, para todos osvalores das proposicoes constituintes, e chamada contradicao.

Definicao 23 (Contigencia) Uma proposicao composta que tem valor t, para alguns va-lores das proposicoes constituintes e f, para outros, e chamada contigente.

Definicao 24 (Logicamente equivalente) Dizemos que as proposicoes p e q sao logica-mente equivalentes se e somente se p↔ q e uma tautologia.

As definicoes 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 aspossibilidades das tabelas de verdade.

Adotando essa abordagem, “logicamente equivalente a” se torna uma relacao funda-mental definida sobre o conjunto de todas as proposicoes que podem ser construıdas dasproposicoes elementares p,q,r,..., usando os conectivos logicos ¬,∧,∨,→,↔, introduzidosanteriormente.

Uma tautologia e agora ua proposicao 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 nossoraciocınio, substituimo-la pelo sımbolo “≡”. Alguns autores usam o sımbolo “⇔”. Osımbolo “≡”, aqui, representa uma relacao de equivalencia entre proposicoes. (Obser-ve que na sentenca “a ≡ b mod m”, onde a, b, m sao inteiros, o sımbolo ≡ representa“congruencia mod m”. O sımbolo ≡ nao esta definido isoladamente, mas somente relati-vamente a um dado conjunto de objetos, por exemplo, proposicoes ou inteiros.)

As proposicoes (1) e (2), acima, podem agora ser escritas:

Lei da identidade p ≡ p (1′′)

Lei do terceiro excluıdo p ∨ ¬p ≡ t (2′′)

E importante observar que a relacao “e logicamente equivalente a”, escrito ‘≡’ e umarelacao de equivalencia sobre o conjunto de todas as proposicoes que podem ser construıdasde proposicoes elementares.

Page 82: MATEMÁTICA DISCRETA -Benedito Melo

82 CAPITULO 4. LOGICA

Leis da algebra da logica ou calculo proposional

As leis dadas abaixo sao, por hipotese, corretas, podendo ser usadas no raciocınio. Es-sas leis sao consistentes com as definicoes das tabelas de verdade dos conectivos, dadasanteriormente.

Quando aplicamos essas leis, podemos substituir proposicoes arbitrarias pelas letrasp, q, r. Um logico diria que cada lei e um esquema cobrindo infinitas 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 excluıdo 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 simplificacao do ou

(a) p ∨ p ≡ p (b) p ∨ t ≡ t (c) p ∨ f ≡ p (d) p ∨ (p ∧ q) ≡ p

Leis da simplificacao 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 possıvelachar um conjunto mınimo de leis logicas a partir do qual todas as outras possam serderivadas. No entanto, para o nosso proposito isto nao e relevante. As leis acima foramselecionadas como uma colecao razoavel sobre a qual basearemos nossos argumentos.Poderıamos apresentar mais leis, entretanto nao queremos alongar tanto esse conjunto aoponto de se tornar muito tedioso para futuras referencias.

Regras para a substituicao e a transitividade

Essas regras mostram como podemos inferir novas proposicoes.

regra da substituicao. Esta regra nos permite substituir qualquer proposicao logi-camente equivalente para obter um novo teorema.

Page 83: MATEMÁTICA DISCRETA -Benedito Melo

4.2. RACIOCINANDO COM HIPOTESES LOGICAS 83

Exemplo (a): Prove que (x → y) ≡ (¬y → ¬x) (a condicional e logicamenteequivalente 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 excluıdo)

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 excluıdo)≡ t (simplificacao 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 excluıdo)≡ t (simplificacao do ou)

Portanto, p→ (p ∨ q) e uma tautologia.

Os exemplos 3 e 4 sugerem outra relacao entre proposicoes compostas. Onde p → qfor uma tautologia, podemos dizer p “implica logicamente” q. Alguns autores usam osımbolo ⇒ para significar “implica logicamente”.

A relacao “implica logicamente” e transitiva mas nao e simetrica.

Regra da transitividade Se p⇒ q e q ⇒ r entao p⇒ r.

Page 84: MATEMÁTICA DISCRETA -Benedito Melo

84 CAPITULO 4. LOGICA

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

proposicao(1)≡ proposicao(2)

pode ser vista como(proposicao(1)⇒proposicao(2))∧(proposicao(2)⇒proposicao(1))

4.3 Predicados & Quantificadores

O calculo proposicional da logica desenvolvida ate aqui, nesta parte, e uma teoria delogica autocontida, mas com suas limitacoes.

Observamos no inıcio deste assunto que uma proposicao p deve ser, sem ambiguidade,verdadeira ou falsa. Mas, com frequencia precisamos considerar “assertivas” cujos valoresde verdade variam. Por exemplo, qando explicamos o condicional escolhemos p comosendo “ Eu moro em Brasılia”.

Podemos tratar esta situacao introduzindo funcoes cujos contradominıos sao valoresde verdade. Uma funcao com essa caracterıstica e chamada um predicado. No exemploacima, a variavel “Eu” foi escolhida dentre um conjunto de pessoas. Cada pessoa emapeiada em t se ela mora em Brasılia ou f se nao for o caso.

Calculo de predicados

Definicao 25 (Predicado) Um predicado e uma expressao envolvendo uma ou mais va-riaveis definidas sobre algum domınio. A substituicao da variavel(veis) por um valor(ouvalores) particular do domınio produz uma proposicao que e verdadeira ou falsa. Portanto,um predicado define uma funcao do domınio no conjunto booleano {t, f}.

Exemplo 77 P (n) ≡(n e primo) e um predicado sobre os numeros naturais. Observamosque 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 primof quando n nao e primo

Page 85: MATEMÁTICA DISCRETA -Benedito Melo

4.3. PREDICADOS & QUANTIFICADORES 85

Exemplo 78 Precondicoes e poscondicoes sao predicados. Por exemplo, a poscondicaopara a divisao inteira, vista anteriormente, e Q(a, b, q, r) ≡ (a = bq + r) ∧ (0 ≤ r < b).Este predicado define a funcao

poscondicao: N× N× N× N −→ B

poscondicao(a,b,q,r)=

{t quando (a = bq + r) ∧ (0 ≤ r < b)f caso contrario

Quantificadores

Alem da substituicao da variavel por um valor particular, existe outra maneira importantede converter um predicado em uma proposicao. Para isso podemos usar o conceito dequantificador, usado para especificar quando o predicado e verdadeiro para todo ou partedo domınio.

“Para todo” n, P(n) significa que o predicado P tem valor t em todo o domınio. Osımbolo que usaremos para representar “para todo” e ‘∀’.

“Para algum” ou “existe” n, P(n) significa que o predicado tem valor t para pelomenos um elemento do domınio. O sımbolo que usaremos para representar “para algum”e ‘∃’.

Os exemplos que seguem ilustram o uso de quantificadores, com o valor de verdaderesultante.

1. A frase “2k e par”, a primeira vista, parece um predicado, mas ela realmente e umaproposicao(t), pois sabemos que 2k e par para todos os valores do inteiro k. Emsımbolos, escrevemos

∀k ∈ N (2k e par),

uma proposicao com valor de verdade t.

2. Para todos os inteiros n, 2n - 1 e ımpar. Em sımbolos, escrevemos

∀k ∈ Z (2n - 1 e ımpar)

e uma proposicao com valor de verdade t.

3. Para todos os primos p, p e ımpar. Em sımbolos, escrevemos

∀p ∈ o conjunto dos numeros primos, (p e ımpar)

Page 86: MATEMÁTICA DISCRETA -Benedito Melo

86 CAPITULO 4. LOGICA

Esta proposicao tem valor f. (O numero 2 tambem e primo.)

O quantificador pode ser restrito a um subconjunto do domınio do predicado.

4. Para todo numero real nao nulo, seu quadrado e positivo.

Em sımbolos

∀x ∈ R, x 6= 0(x2 > 0)

Esta proposicao tem valor t.

5. Se um inteiro e par entao seu quadrado e par.

Esta e, realmente, uma proposicao geral sobre todos os inteiros. Seriamais satisfatorio incluir o quantificador explicitamente. Assim:

Para todo os inteiros n, se n e par entao n2 e par.

Nesta forma esta claro que um valor falso do predicado, para um valor den, seria suficiente para mostra a falsidade da proposicao. Entretanto, talcontra 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 n2 = 4m2, portanto n2 e par.

6. Para todo inteiro n, se n2 for ımpar, entao n e ımpar.

Esta proposicao e a contrapositiva do exemplo 5.

A estrutura das proposicoes em 5. e 6. acima pode ser mais transparente se ascolocarmos na forma simbolica.

Defina P (n) como sendo o predicado “n e ımpar”Q(n) como sendo “n2 e par”

Entao a proposicao em 5. acima e

∀n ∈ Z(P (n)→ Q(n));

e a contrapositiva em 6. e

∀n ∈ Z(¬Q(n)→ ¬P (n));

Page 87: MATEMÁTICA DISCRETA -Benedito Melo

4.3. PREDICADOS & QUANTIFICADORES 87

Negacao de predicados quantificados

Como um predicado quantificado e uma proposicao com um valor de verdade definitivo,deve ser possıvel nega-lo para obter o valor de verdade oposto. A estrutura simbolica danegacao sera investigada usando um exemplo.

Para algum numero x, x2 e negativo. Em sımbolos,∃x ∈ R(x2 < 0), que e f.A negacao da proposicao e:Para todo numero real x, x2 e nao negativo. Em sımbolos, ∀x ∈ R(x2 ≥ 0), que e t.Os resultados gerais sao:

¬(∀xP (x)) ≡ ∃x(¬P (x))¬(∃xQ(x)) ≡ ∀x(¬Q(x))

Quantificadores para predicados com mais de uma variavel

Os resultados para a negacao podem ser estendidos para quantificadores com predicadoscom mais que uma variavel. Por exemplo:

∀x ∈ R∃y ∈ R(x + y = 0)

que significa “para todo x real existe um numero real y tal que x + y = 0”. Isto everdade, sendo y o negativo de x. A negacao e:

¬(∀x∃y(x + y = 0)) ≡ ∃x¬(∃y(x + y = 0) ≡ ∃x∀y(x + y 6= 0)

A ordem dos quantificadores multiplos para predicados com mais que uma variavelpode alterar o significado e o valor de verdade da proposicao. Por exemplo:

Todo numero natural tem um sucessor. Em sımbolos

∀n ∈ N∃m ∈ N(m = n + 1)

que e uma proposicao verdadeira.Se alterarmos a ordem dos quantificadores obteremos

∃m ∈ N∀n ∈ N(m = n + 1)

Na linguagem comum esta expressao diz “algum numero natural tem todo numeronatural como seu sucessor” que nao e equivalente a proposicao com os quantificadores naordem original.

Page 88: MATEMÁTICA DISCRETA -Benedito Melo

88 CAPITULO 4. LOGICA

4.4 Exercıcios

1. O operador nand, denotado por ‘|’, e definido 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 proposicoes seguintes possuem o mesmo significado quando usadas emmatematica:

se p entao q p e suficiente para q

q e necessario para p p somente se q.

Reescreva cada uma dessas proposicoes seguintes de tres maneiras diferentes usandoos padraos acima:

(a) Se 9 divide n entao 3 divide n.

(b) x = 0 e suficiente para xy = 0.

5. Achar a reversa e a contrapositiva das seguintes proposicoes.

(a) Se n e ımpar entao n2 e ımpar.

(a) Se n e primo e maior que 2 entao n e ımpar.

(c) Se ab = 0 entao 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 proposicoes saotautologias.

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

Page 89: MATEMÁTICA DISCRETA -Benedito Melo

4.4. EXERCICIOS 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 proposicoes logicamente equivalentes, que as seguintesproposicoes 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 proposicao?

∀x∃y(y − x = x− y)

De a negacao dessa proposicao.

12. Escrever, usando sımbolos matematicos e logicos a seguinte proposicao:

Para todo numero real positivo x, existe um numero natural n tal que xe igual a 2n ou x esta entre 2n e a proxima maior potencia de 2.

Escreva a negacao da proposicao em sımbolos. 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 < n2 ≤ 4).

R(n) e o predicado (0 < n3 ≤ 8).

S(n) e o predicado (0 < n ≤ 2).

Dar o conjunto de valores de n que gera proposicoes verdadeiras para cadauma das P, R, S.

Quais dos predicados sao equivalentes?

A proposicao ∀n(R(n)→ P (n)) e verdadeira?

Page 90: MATEMÁTICA DISCRETA -Benedito Melo

90 CAPITULO 4. LOGICA

14. Use o calculo de proposicoes para simplicar cada uma das proposicoes abaixo a umadas proposicoes 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

p0 ∧ ... ∧ pn, onde cada pi tem a forma e0 ∨ ... ∨ em.

Cada ej e t, f, ou uma proposicao elementar x ou sua negacao ¬x.

Converter as seguintes proposicoes a sua forma normal conjuntiva:

(a) (p ∧ q) ∨ (p ∧ ¬r) (p→ q)↔ (¬p ∨ q)

Page 91: MATEMÁTICA DISCRETA -Benedito Melo

Capıtulo 5

Provas

5.1 Introducao

Nesta capıtulo consideraremos construcoes de provas matematicas. Apos ver este assuntoo aluno deve ser capaz de completar provas em que lhe sejam dadas certas assistenciapara a estrutura da prova. Num nıvel mais alto e importante aprender como selecionarestruturas para a prova. As estruturas da prova que o aluno deve ser capaz de entedere 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 provausada para provar que um programa esta correto.

A prova tem sido uma parte importante da matematica desde o tempo dos gregosantigos. Raciocinar, sem duvida, fez parte da cultura do antigo Egito e da Babilonia, masnao existe evidencia de “prova” como significando “uma demonstracao de um argumentode um modo publico, suficientemente rigorosa para suportar qualquer crıtica”. Num livrochamado 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 pequenonumero de axiomas, aceitar definicoes e regras de argumentos, entao e possıvel provaruma grande quantidade de proposicoes, como consequencia das hipoteses. Entretanto, a“ prova” e uma das caracterısca de muitas atividades, haja visto o trabalho do advogado.

Mais recentemente, tem sido adaptados alguns metodos matematicos de provas, paraa tarefa de provar corretudes de programas. Testar pacientemente um programa paramuitos conjuntos de entradas de dados, nao pode, normalmente, garantir que o programaesteja correto para todas as entradas possıveis, pois um programa util e projetado paraaceitar uma quantidade infinita de entradas. E muito mais satisfatorio provar que oprograma esteja correto, porem provalmente seja mais difıcil que construir o proprioprograma. Somente poderemos provar que um programa esta correto “relativamentea sua poscondicao”. A atividade de provar que um programa esta correto e chamadaverificacao de programas.

91

Page 92: MATEMÁTICA DISCRETA -Benedito Melo

92 CAPITULO 5. PROVAS

O esforco de provar corretudes de programas tem tido efeitos sobre o estilo de escreverprogramas. Alguns autores defendem que o programa seja desenvolvido lado a lado comsua prova.

Padroes de provas

Agora, apresentaremos uma abordagem sistematica de provas em matematica. Para oestudante, a prova de proposicoes, geralmente, e difıcil. Uma prova requer muito conhe-cimento dos teoremas, definicoes e hipoteses na area da proposicao, a habilidade paraselecionar uma estrategia de prova e segui-la logicamente, superando muitas dificuldadesao longo do processo da prova. E grande a satisfacao ao completar uma prova e convencera audiencia de que a proposicao esta, sem duvida, correta.

A obordagem que seguiremos, nesta parte, e motivada no fato de que a arte de construiruma prova e analoga a de construir um bom programa, em pelo menos dois pontos devistas. Ambos devem estar corretos e serem entendidos pelos outros.

Examinemos o exemplo seguinte para ilustrar um metodo bastante usado de provas. Asproposicoes foram escolhidas sobre os numeros naturais, pois e uma parte da matematicabem conhecida. O nosso objetivo e concentrar a atencao no metodo.

Deve estar claro de antemao que os “metodos” de que estamos falando nao sao receitasou procedimentos que inevitavelmente gerara uma prova correta, para cada proposicao.Os metodos sao abordagens que provalvemente levam ao sucesso, mas requerem umavariedade de pequenas variacoes para se adequar as proposicoes particulares. Para superaressas dificuldades precisamos de muito exercıcio para obter experiencia.

Sabemos que uma boa ideia pode nao ser bem sucedida e por isso devemos estarpreparados para tentar um outro metodo.

Quando escrevemos uma prova para uma proposicao 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 entao mostra-laa alguem, e finalmente elabora-la para atingir a clareza. Uma prova pode ser difıcil de lerdevido a mal escolha de notacao ou a dificuldade da estrutura. Esta parte da matematicaprovavelmente se beneficia mais do que qualquer outra da iteracao 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 secao nos concentraremos na segunda fase. Uma das caracterısticas das provas,como sao apresentadas nos textos, e a nao justificativa da razao porque o autor optou

Page 93: MATEMÁTICA DISCRETA -Benedito Melo

5.1. INTRODUCAO 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 comentarios em colchetespara 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 contradicao.

Proposicao 1 Para todo inteiro n, n3 + 2n e divisıvel por 3.[Primeiras ideias: tente obter 3 como fator. Nao podendo conseguindo, fatorize a

expressao de qualquer maneira: n3 + 2n = n(n2 + 2). A proposicao seria verdadeira sen fosse um multiplo de 3. Mas, que tal outras possibilidades? Tentemos uma prova porcasos.]

Prova: n3 + 2n = n(n2 + 2)

Caso 1: n = 3k para algum k.

n3 + 2n = 3k((3k)2 + 2) que e divisıvel por 3.

Caso 2: n = 3k + 1, para algum k.

n(n2 + 2) = (3k + 1)((3k + 1)2 + 2)

Analisemos o segundo fator, pois o primeiro nao e divisıvel por 3.

(3k + 1)2 + 2 = 9k2 + 6k + 1 + 2= 3(3k2 + 2k + 1) (divisıvel por 3).

Caso 3: n = 3k + 2, para algum k.

Novamente olhando para o segundo fator, temos

Page 94: MATEMÁTICA DISCRETA -Benedito Melo

94 CAPITULO 5. PROVAS

n2 + 2 = (3k + 2)2 + 2= 9k2 + 12k + 4 + 2= 9k2 + 12k + 6= 3(3k2 + 4k + 2) (e divisıvel por 3.)

Em cada caso, n2 + 2n e divisıvel por 3. Os tres casos cobrem todas aspossibilidades, pois cada inteiro cai em um desses tres casos.

Portanto, a proposicao e verdadeira para todo inteiro n.

Proposicao 2 Se n2 for par entao n tambem e par[Primeira ideias: Como n2 e par podemos dizer que n2 = 2k, para algum k. Tentemos

a contrapositiva.

Prova:

Vamos provar ”se n for ımpar, entao n2 e ımpar”.

Como n e ımpar temos n = 2k + 1, para algum k.

Portanto, n2 = (2k + 1)(2k + 1) = 4k2 + 4k + 1 que e ımpar.

A proposicao sob aspas e verdadeira. Como ela e a contrapositiva da propo-sicao que pretendemos provar. Podemos afirmar que, se n2 for par entao n epar.

Observe que este resultado e muito geral. Seria correto colocar o quantificador ”paratodo inteiro n” na proposicao.

Proposicao 3 Se p > 3 e p e primo, entao p2 − 1 e divisıvel por 3.

[Temos duas informacoes. Talvez possamos comecar com essas informacoes econcluir o resultado, p2 − 1 e divisıvel por 3, fazendo uma prova direta. Aestrategia sera bem sucedida, desde que tenhamos em vista a conclusao.]

[Analise: Tentaremos argumentar avancando a partir das informacoes quepossuimos, e recuando a partir do que pretendemos mostrar, na esperanca deque os dois argumentos se completarao, produzindo o resultado.

dado: a ser provado:proposicao: p > 3 e p e primo p2 − 1 e divisıvel por 3

precondicoes: p 6= 2, p 6= 3 fatorarp2 − 1 = (p− 1)(p + 1)

Agora observe que (p− 1), p e (p + 1) sao inteiros consecutivos.]

Page 95: MATEMÁTICA DISCRETA -Benedito Melo

5.1. INTRODUCAO 95

Prova:

Um dos tres numeros (p− 1), p, (p + 1) e divisıvel por 3, pois eles sao conse-cutivos.

Mas esse numero nao pode ser p porque p e primo maior que 3. Logo, (p −1)(p + 1) e divisıvel por 3.

Portanto, p2 − 1 e divisıvl por 3.

Proposicao 4 Existem mais numeros primos que numeros naturais. Por isso podemosdizer que a quantidade de primos e infinita.

A prova classica e devida a Euclides(aproximadamente, 300 a.c.). O metodo e chamadoprova por contradicao.

Prova:

Suponha que a proposicao e falsa e portanto so existe um numero finito, k, deprimos.

Sejam os primos p1, p2, ..., pk, onde k e um inteiro positivo.

Considere o numero n = p1 ∗ p2 ∗ ... ∗ pk + 1. n e maior que qualquer primoconhecido, pois ele nao e primo. Logo, esse numero 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 inıcio da prova deve estar errada, e assimo numero de primos nao e finito.

Inducao matematica

A inducao matematica e um estilo de prova aplicavel a predicados, sobre os numerosnaturais. Algoritmos com uma estrutura de laco, em geral, estao associados a predicadossobre um contador de laco, que e um numero natural. Bastava esta razao para que ainducao matematica fosse um metodo de prova muito importante em computacao.

O princıpio da inducao matematica

Em palavras.

Page 96: MATEMÁTICA DISCRETA -Benedito Melo

96 CAPITULO 5. PROVAS

Suponhamos um predicado definido sobre os numeros naturais. Suponha queo predicado e verdadeiro para algum valor(basico) da variavel. E suponha quese o predicado for verdadeiro para qualquer valor da variavel, ele tambem seraverdadeiro para esse valor mais 1. Entao o predicado e verdadeiro para todosos valores da variavel, a partir do valor basico.

Em sımbolos.

Seja P(n) um predicado definido 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 paratodo n ≥ a.

E aceito que o princıpio da inducao matematica se verifica para predicados sobre osinteiros. O princıpio nao pode se verficar para numeros reais, pois nao existe a nocao doproximo numero real, apos o numero real k. O princıpio pode ser aplicado a qualquersistema em que cada variavel tenha um proximo valor, e existe um primeiro valor definido.

A seguir apresentamos algumas proposicoes que podem ser provadas usando inducaomatematica.

1. O numero n3 + 2n e divisıvel por 3, para todos os inteiros n ≥ 1.

2. Uma maquina automatica deve ser programada para entregar um dado valor deselos, a pedido. A maquina contem selos de 3-centavos e 5-centavos. Desde que oestoque nao se esgote, a maquina pode entregar qualquer valor maior ou igual que8-centavos.

3. Para todos os inteiros n ≥ 1, 3n ≥ 1 + 2n.

4. Para todos os inteiros n > 6, n! > 3n.

5. Para todos os inteiros n > 0,

a + ar + ar2 + ... + arn−1 =a(rn − 1)

r − 1, para r 6= 1.

6. Todo inteiro maior que 1 pode ser escrito como um produto de primos.

Uma prova por inducao matematica deve provar duas proposicoes.

1. Basico: O predicado e verdadeiro para algum valor basico da variavel.

Page 97: MATEMÁTICA DISCRETA -Benedito Melo

5.1. INTRODUCAO 97

2. Indutivo: Para todos os valores da variavel a partir do valor basico, se o predicadofor verdadeiro para um valor da variavel entao ele tambem sera verdadeiro para oproximo valor da variavel.

Os exemplos abaixo foram escolhidos para ilustrar o metodo de prova por inducao ealgumas de suas variacoes, em algumas das aplicacoes bem conhecidas. E possıvel, pelomenos para algumas das proposicoes, se obter provas por metodos diferentes.

Exemplos de provas por inducao matematica

Proposicao 5 O numero n3 + 2n e divisıvel por 3, para todos os inteiros n ≥ 1.

Defina o predicado P(n) como sendo (n3 + 2n e divisıvel por 3.)

Prova: Basica Mostrar que P(1) e verdadeira.

13 + 2 ∗ 1 = 1 + 2 = 3, e 3 e divisıvel por 3. Portanto, P(1) e verdadeiro.

indutivo: Mostrar que P (k)→ P (k + 1) e verdadeiro para todos os inteiros≥ 1.

Assuma que P(k) e verdadeiro. Isto e, k3 + 2k e divisıvel por 3. 1 Agoratentaremos mostrar que n3 + 2n e divisıvel por 3, para o proximo valor de n,notadamente n = k + 1.

(k + 1)3 + 2(k + 1) = k3 + 3k2 + 3k + 1 + 2k + 2= (k3 + 2k) + 3k2 + 3k + 3

Mas, k3 + 2k e divisıvel por 3, pela hipotese de que P(k) e verdadeiro.

Portanto, k3 + 2k = 3t, e

(k + 1)3 + 2(k + 1) = 3(t + k2 + k + 1)

que e divisıvel por 3. Portanto, P(k+1) e verdadeiro.

Mostramos que P (n)→ P (n + 1) e verdadeiro para uma particular constante n = k.Entretanto, o argumento e suficientemente geral para permitirmos deduzir que, para k ≥1, (P (k)→ P (k + 1) e verdadeiro.

Pelo princıpio da inducao matematica n3 + 2n e divisıvel por 3, para n ≥ 1.Em outras palavras, mostramos que se a proposicao for verdadeira para algum valor

de n ela tambem e verdadeira para o proximo valor de n. Mas a proposicao e verdadeirapara n = 1. Portanto, ela e verdadeira para todos os valores de n a partir de 1.

1O uso de k tem como significado o fato de que estamos assumindo a proposicao para somente umvalor de n. Neste ponto do argumento k e constante.

Page 98: MATEMÁTICA DISCRETA -Benedito Melo

98 CAPITULO 5. PROVAS

Proposicao 6 Uma maquina automatica de vendas foi programada para entregar, apedido, selos. A maquina mantem estoques de selos de 3-centavos e 5-centavos. Desdeque o estoque nao se esgote, a maquina pode entregar exatamente qualquer valor maiorou igual a 8-centavos.

Defina o predicado P(n) como sendo “postagem de n-centavos pode ser feito usandoselos 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-centavose 8-centavos.

Indutiva: Mostrar que (P (k) → P (k + 1)) e verdadeiro para todo inteirok ≥ 8.

Assuma que P(k) e verdadeiro. Isto e, k-centavos pode ser obtido com selosde 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-centavosentao deve existir no mınimo selos de 3-centavos para satisfazer a condicaok ≥ 8. Substitua tres selos de 3-centavos por dois de 5-centavos perfazendo ovalor (k+1)-centavos.

Portanto, P (k) → P (k + 1) e verdadeiro para k, um valor particular de n.Entretanto, o argumento se verifica para todo k ≥ 8.

Pelo princıpio da inducao matematica, a postagem de n-centavos de selos podeser efetuada com selos de 3-centavos e 5-centavos, para todo valor de n ≥ 8.

Esta proposicao seria muito difıcil de provar com uma prova direta. Alem disso, aprova indutiva sugere um procedimento para programar a maquina de vendas.

Proposicao 7 Para todos os inteiros n ≥ 1, 3n ≥ 1 + 2n.Defina o predicado P(n) como sendo (3n ≥ 1 + 2n).

Prova: Basica:

2Neste ponto k e um valor constante particular para n.

Page 99: MATEMÁTICA DISCRETA -Benedito Melo

5.1. INTRODUCAO 99

Mostrar que P(1) e verdadeiro.

31 ≥ 1 + 2 ∗ 1, portanto P(1) e verdadeiro.

Indutiva: Mostrar que (P (k) → P (k + 1) e verdadeiro para todo inteirok ≥ 1.

Assuma que P(k) e verdadeiro. Da hipotese temos a esperanca de deduzir que3k+1 ≥ 1 + 2(k + 1).

3k ≥ 1 + 2k (hipotese de que P(k))3× 3k ≥ 3(1 + 2k) (multiplicando por 3)

3k+1 ≥ 1 + 2k + 2 + 4k (algebra)≥ 1 + 2k + 2 ( pois k > 0)

Portanto, 3k+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 verifica para k ≥ 1. Pelo princıpio da inducao matematica, aproposicao e verdadeira.

Proposicao 8 Para todo inteiro n > 6, n! > 3n.

Defina o predicado p(n) como sendo (n! > 3n).

Prova:

Basica: Mostrar que P(7) e verdadeiro.

7! = 7 ∗ 6 ∗ ∗5 ∗ 4 ∗ 3 ∗ 2 ∗ 1 = 5040 e 37 = 2187

Portanto, 7! > 37 e P (7) e verdadeira.

Indutivo: Mostrar que P (k) → P (k + 1) e verdadeiro para todo inteirok ≥ 7.

Assuma que P(k) e verdadeiro. Da hipotese esperamos deduzir que (k + 1)! >3k+1.

(k + 1)! = (k + 1)k!> (k + 1)3k (assumindo P(k))> 3 ∗ 3k (desde que k ≥ 7)

Portanto, (k + 1)! > 3k+1

Mostramos que P (k) → P (k + 1) e verdadeiro para k um valor particular den. Entretanto, o argumento e geral, verificando para todos os inteiros k ≥ 7.

Pelo princıpio da inducao matematica n! > 3n, para todos os inteiros n > 6.

Page 100: MATEMÁTICA DISCRETA -Benedito Melo

100 CAPITULO 5. PROVAS

Proposicao 9 Para todo inteiro n > 0,

a + ar + ar2 + ... + arn−1 =a(rn − 1)

r − 1parar 6= 1

Defina o predicado P(n) como sendo (A soma dos primeiros n termos e

a + ar + ar2 + ... + arn−1 =a(rn − 1)

r − 1, r 6= 1.)

A parte da serie que e o predicado usa n de duas maneiras. A formula para o ultimotermo e uma funcao de n. Alem disso, n conta o numero de termos na serie. Portanto,P(n+1) tera uma nova formula para o ultimo termo da serie e assim um termo a maisnela.

Prova:

A precondicao e r 6= 1.

Basico: Mostrar que P(1) e verdadeiro.

Para n=1 a serie tem somente um termo, a. A formula para a soma da seriee

a(r1 − 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 somacorreta para uma serie com k termos(k constante.)

Adicione o proximo termo na serie, notadamente ark, em ambos os lados daequacao para a soma de k termos assumido.

Entao, a soma de k+1 termos e:

a + ar + ar2 + ... + arr−1 = a(rk−1)r−1

+ ark

= ark−ar−1

+ ark

r−1

= ark−a+ark+1−ark

r−1

= a(rk+1−1)r−1

Page 101: MATEMÁTICA DISCRETA -Benedito Melo

5.1. INTRODUCAO 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 suficientemente geral podermos deduzir a verdade para todok ≥ 1. Pelo princıpio da inducao matematica a proposicao 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.

Defina P(n) como sendo (cada inteiro de 2 a n pode ser escrito como um produto deum 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 primoe 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 m×n, onde ambos os fatores pertencem aoconjunto {2,3,...,k}.A hipotese de que P(k) e verdadeiro significa que ambos m e n sao produtosde 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 particulark. Agora, este argumento e suficientemente geral para podermos afirmar queP (k)→ P (k + 1) e verdadeiro para k ≥ 2.

Logo, pelo princıpio da inducao matematica, todo inteiro maior que 1 pode serescrito como um produto de primos.

Em palavras, mostramos que se a proposicao for verdadeira para algum valor de n elatambem e verdadeira para o proximo maior valor de n. Mas, a proposicao e verdadeirapara n=2. Consequentemente, ela e verdadeira para todos os valores de n a partir de 2.

3A assertiva da proposicao contem um abuso do termo ”produto”.

Page 102: MATEMÁTICA DISCRETA -Benedito Melo

102 CAPITULO 5. PROVAS

Inducao e boa ordem

Tornando transparente a logica subjacente do raciocınio matematico, particularmenteda inducao matematica, podera nos ajudar a expressar o argumento usando ”regras deinferencia” ou ” regras de deducao”.

Uma regra de inferencia e um esquema logico usando sımbolos p, q, ... que podem sersubstituıdos por proposicoes particulares para obter uma instancia (isto e, uma aplicacao)da regra. Vamos considerar um exemplo de uma regra de inferencia.

O esquemapp→ qq

e lido

”se soubermos(ou aceitarmos ou nos forem dados) que a proposicao(p) e verdadeirae soubermos que a proposicao(se p, entao q) e verdadeira, entao 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) entao (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 proposicao 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 princıpio da inducao matematica: A forma fraca

Expresso como uma regra de inferencia, o princıpio da inducao matematica e o esquema(proposicao basica) P(0)

(proposicao indutiva) para todo k ≥ 0, (P (k)→ P (k + 1))

para todo k ≥ 0, P (n)Este princıpio 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)

Page 103: MATEMÁTICA DISCRETA -Benedito Melo

5.1. INTRODUCAO 103

e assim continua uma infinidade de aplicacoes de modus ponens.Isto e bastante plausıvel. Entretanto, alguns matematicos preferem fazer das infinitas

aplicacoes uma hipotese separada constituindo o princıpio da inducao matematica.Entretanto, podemos colocar a seguinte questao. Existe uma maneira de ”provar”

que a inducao matematica esta correta ou devemos aceita-la como uma hipotese basica.Colocando a questao em outras palavras, a palavra ”princıpio” sgnifica ”teorema” ou”hipotese basica”? A resposta a primeira questao e que podemos provar que a inducaomatematica esta correta se assumirmos que os numeros naturais estao bem ordenados.Igualmente, podemos provar que os numeros naturais estao bem ordenados se assumirmosque o princıpio da inducao matematica esta correto. A situacao e um pouco complicadapelo fato de que o princıpio da inducao matematica se apresenta de varias formas. Essasformas existem para simplificar a aplicacao do princıpio, embora eles sejam equivalentesem logica.

O princıpio 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 possıveis outras variacoes. A proposicao 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 variacao seria comecar a inducao em 1 ou emalgum outro numero em de vez de 0.

Exemplo 80 Todo numero natural maior que 1 pode ser fatorado como um produto deprimos, 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 abaixousa um predicado ligeiramente diferente e a forma forte da inducao matematica.

Prova: Defina 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 aconstante k ≥ 2.

Caso 1: k + 1 e primo. Portanto P(k+1) e verdadeiro.

Page 104: MATEMÁTICA DISCRETA -Benedito Melo

104 CAPITULO 5. PROVAS

Caso 2: k + 1 e composto, entao k + 1 = mn, para algum inteiro positivo me 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 formaforte da inducao matematica, todo numero natural maior que 1 pode ser fatorado comoum produto de primos.

Exemplo 81 A sequencia

x0, x1, x2, ..., xn, ...

e definida pela formula xn = 3xn−1 − 2xn−2, para todo n ≥ 2 e as condicoes iniciaisx0 = 0 e x1 = 1.

Provar que xn = 2n − 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 cientıfica, nao existe agarantia de que a formula esta correta para todo n.

n xn 2n − 1 a formula esta correta0 0 1− 1 t1 1 2− 1 t2 3× 1− 2× 0 = 3 4− 1 t3 3× 3− 2× 1 = 7 8− 1 t4 4× 7− 2× 3 = 15 16− 1 t

Prova por inducao matematica. Defina P(n) pelo predicado

(xn = 2n − 1)

Page 105: MATEMÁTICA DISCRETA -Benedito Melo

5.1. INTRODUCAO 105

P(0) e verdadeiro, linha 1 da tabela acima.

P(1) e verdadeiro, linha 2 da tabela acima.

Portanto, a proposicao basica P (0) ∧ P (1) e verdaeira.

Assuma que P (k − 1) ∧ P (k) e verdadeira para a constante k ≥ 1.

Entao, xk−1 = 2k−1 − 1 e xk = 2k − 1.

Portanto, xk+1 = 3xk − 2xk−1 (dado)= 3(2k − 1)− 2(2k−1 − 1) (hipotese)= 3 ∗ 2k − 3− 2 ∗ 2k−1 + 2= 3 ∗ 2k − 2k − 1= 2 ∗ 2k − 1= 2k+1 − 1

Portanto, P(k+1) segue, e a proposicao indutiva se verifica para todo numeronatural n. Provamos que xn = 2n − 1, para todo n ≥ 0.

E possıvel mostrar que qualquer proposicao que possa ser provada pela inducao forte,pode tambem ser provada pela inducao fraca, usando um predicado modificado. Tambem,que qualquer proposicao que possa ser provada pela inducao fraca pode ser provada pelainducao forte, desde que as hipoteses necessaria na forma forte inclua aquelas da formafraca. Na proxima secao provaremos a equivalencia entre a inducao matematica na formafraca e na forma forte. Mostraremos, tambem, que se um conjunto for bem ordenadoentao a inducao matematica sera um metodo satisfatorio de prova nesse conjunto. Alemdisso, se a inducao for valida o conjunto deve ser bem ordenado.

Boa ordem

No teorema que segue mostraremos que o princıpio da boa ordem garante que cada umadas formas da inducao matematica esta correta e que qualquer um desses tres ”princıpios”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 dostres princıpios dados abaixo, entao ela pode ser provada usando qualquer um dos outroprincıpios.

1. A forma forte do princıpio da inducao matematica.

2. A forma fraca do princıpio da inducao matematica.

3. Os numeros naturais satisfaz o princıpio da boa ordem.

Page 106: MATEMÁTICA DISCRETA -Benedito Melo

106 CAPITULO 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 inducao 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

Defina o novo predicado S(k) = P (0) ∧ P (1) ∧ ... ∧ P (k)Entao S(0) = P (0) e o esquema (1) acima pode ser substituıdo 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 inducao matematica.

Nosso objetivo e provar que os numeros naturais sao bem ordenados.

O princıpio da boa ordem para os numeros 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, entao A e o conjuntovazio”.

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 numero 0 nao esta em A, caso contrario ele seria o menor elementode A.

Portanto, 0 pertence a A′e P(0) e verdadeiro.

(Indutivo). Suponha que P (0) ∧ P (1) ∧ ... ∧ P (k) e verdadeiro.

Entao, 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 menorelemento de A.

Page 107: MATEMÁTICA DISCRETA -Benedito Melo

5.2. EXERCICIOS 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 matematicasegue que P(n) e verdadeira para todos os numeros naturais. Portanto, osnumeros naturais sao bem ordenados.

Prova(3): Assuma:1. os numeros 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 numeros naturais t sobre os quais o predicado P(t) efalso. Esperamos mostrar que F e, de fato, o conjunto vazio.

F = {t ∈ N|P (t) = f}

Se F 6= ∅, entao F tem o menor elemento m pelo princıpio da boa ordem eP(m) e falso.

Agora, seja m 6= 0, porque P(0) e verdadeiro de (2).

Portanto, m ≥ 1 e m− 1 e um numero natural.

Agora, m− 1 nao esta em F porque ele e menor do que o menor elemento deF.

Portanto, P(m-1) e verdadeiro. Por (3) P (m − 1) −→ P ((m − 1) + 1) everdadeiro.

Logo, P(m) e verdadeiro.

A contradicao resultou da hipotese de que F 6= ∅.Logo F e o conjunto vazio e a proposicao esta provada.

Isto completa a prova de que os tres princıpios sao proposicoes equivalentes, sobre osnumeros naturais.

5.2 Exercıcios

1. Prove por casos.

Para todos os inteiros n, n(n + 1)(n + 2), e divisıvel 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.

Page 108: MATEMÁTICA DISCRETA -Benedito Melo

108 CAPITULO 5. PROVAS

3. Prove pelo metodo direto.

para todos os inteiros n ≥ 0, n3 − n e divisıvel por 3.

4. Prove por contradicao.

para todos os inteiros positivos a, n, c, se ab = n e a <√

n, entao b >√

n.

5. Prove por inducao matematica.

para todos os inteiros n ≥ 3, n2 > 2n + 1.

Sugestoes:

(1) Caso i: n = 3k + i - 1, para i = 1, 2, 3.

Prove “se m e par ou n e par entao ma e par”.

Fatorize n3 − n.

Assuma que a proposicao e falsa. Assuma “ab = n e a <√

n e b ≤ √n ”

P (n) ≡ (n2 > 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 poscondicao. (Assumaque a precondicao e satisfeita. Adicione uma assertiva sobre o valor de cada variavel: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 Saıdas: Inteiros a, b.Poscondicoes: Q ≡ (a = Y, b = X).

Metodo:

1.temp← b2.b← a3.a← temp

7. Seja p(n) o predicado (5n ≥ 1 + 4n).

(a) Escrever p(1). p(1) e verdadeiro?

(b) Escrever p(k).

(c) Escrever p(k+1).

Page 109: MATEMÁTICA DISCRETA -Benedito Melo

5.2. EXERCICIOS 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 dıgitos abc.

(a) De o conjunto dos valores possıveis para cada a, b, c.

(b) De a expansao literal de n.

(c) Prove que se b = a + c, entao n e divisıvel 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! > 2n.

10. Prova que para todos os inteiros n ≥ 5, 2n > n2.

11. A soma dos n primeiros termos de uma serie geometrica cujo primeiro e a e cujadiferenca comum e d e definido por Sn.

Sn = a(a + d) + (a + 2d) + ... + (a + (n− 1)d)

Prove que Sn = n2[2a + (n− 1)d].

12. A sequencia Sn e definida por

Sn =

{2Sn−1 + 1 para todo n ≥ 1,0 para n = 0

Prove que Sn = 2n − 1.

13. Prove que para todos os numeros naturais n, n2 − 2 nao e divisıvel por 3.

14. Seja P(n) o predicado (n2 + n + 1 e par).

Prove que P (k) −→ P (k + 1) para todos os inteiros positivos k. Para qual valor(seexistir) de n P(n) e verdadeiro?

15. Prove que para todos n ≥ 0,

2(−1)n + (−1)n+1 = (−1)n

16. Prove por inducao matematica que n2 ≥ n + 1, para todos os inteiros n ≥ 2.

17. Prove por inducao matematica que uma postagem maior ou igual que dois centavos,pode ser efetuada usando selos de exatamente 2- e 3-centavos.

Page 110: MATEMÁTICA DISCRETA -Benedito Melo

110 CAPITULO 5. PROVAS

18. Uma maquina de venda foi especificada para fornecer somente selos de 2-centavose 5-centavos. Assumindo que os estoques de cada selo sao suficientemente grande,prove que qualquer postagem de 5-centavos ou mais pode ser providenciado pelamaquina.

19. Seja o inteiro n representado na base 10 pela cadeia de dıgitos abc.Prove que se a + b + c for divisıvel por 9 entao n e divisıvel por 9.

Page 111: MATEMÁTICA DISCRETA -Benedito Melo

Capıtulo 6

Recursao

Introducao

A recursao e muito importante em computacao. Ela pde ser usada como uma ferramenta parapensar sobre um problema, para construir um algoritmo, para construir uma definicao ou comoferramenta de programacao explıcita. Ela pode ser uma maneira de se obter uma maquima,em vez de um programa e ordenar dificuldades. Nesta parte, analisaremos a recursao pararesolver problemas, construir algoritmos e definicoes. Usaremos as estruturas de sequencias,listas e funcoes para aplicar o pensamento recursivo. Terminado esta parte, a aluno deveriater aprendido o uso de formulas recursivas, como resolver relacoes de recorrencia e num nıvelmais elevado, ele deveria ter adquirido a habilidade de usar o pensamento recursivo na solucaode problemas.

Em geral, para resolver um problema em computacao dividimo-lo em problemas maissimples da mesma especie, resolvemos estes e compomos suas solucoes para obter a so-lucao do problema inicial. Se a aplicacao(possivelmente) repetida desta estrategia desimplificacao levar a problemas que possam ser resolvidos, entao o problema original po-de ser resolvido. Tal abordagem e chamada recursiva. Esta abordagem tambem podeser aplicada na construcao de alguns algoritmos e definicoes. A recursao requer:

• um caso base para o qual e conhecido a solucao do problema, a saıda do algoritmoou a definicao.

• uma etapa recursiva que fornece a solucao para o problema geral, para o algoritmoou a definicao em termos de uma “versao” mais simples do problema, do algoritmoou da definicao. “Mais simples”, aqui, significa mais proximo do caso base.

Em parte, a recursao e importante em matematica porque uma proposicao que envolverecursao ja sugere um procedimento de sua prova(a qual e por inducao matematica).

111

Page 112: MATEMÁTICA DISCRETA -Benedito Melo

112 CAPITULO 6. RECURSAO

Pensamento recursivo

Ate aqui so escrevemos expressoes como

1. 1 + 2 + ... + 99

2. 20× 19× ...× 2× 1

Os pontos, “...”, acima, significam(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 claroo que deve ser feito. Uma maneira construtiva de escrever uma expressao contendo umprocedimento repetitivo e por meio de uma funcao definida recursivamente.

Definimos a funcao soma e fatorial, sobre os numeros naturais, como segue:

1. soma.

soma: N −→ N

soma(n) =

{0 se n = 0n + soma(n− 1) se n 6= 0

Exemplo 82 Calcular soma(99)

Solucao: soma(99) = 99 + soma(98).Para avaliar soma(98) apliquemos a definicao novamente

98 + soma(97)

...A chamada recursiva para quando n = 0 com a avaliacao soma(0) = 0.Portanto, a avaliacao definitiva e dada por:

(99+(98+...(1+0)...)) = 4950.

2. fatorial

fatorial:N −→ N

fatoria(n) =

{1 se n = 0n× fatorial(n− 1) se n ≥ 1

A notacao usual para fatorial(n) e n! Com esta notacao, n! = 1, se n=0 ou n×(n−1)!,se n ≥ 1.

Exemplo 83 Calcular fatorial(20),(isto e, calcular 20!).

Page 113: MATEMÁTICA DISCRETA -Benedito Melo

113

Solucao: fatoria(20) = 20 ∗ fatorial(19)Para avaliar fatorial(19) apliquemos a definicao novamente

19 ∗ fatorial(18)

...A chamada recursiva para em n = 0, com fatorial(0) = 1.A multiplicacao definitiva e entao avaliada, dando:

(20× (19× ...(1× 1)...)) = 2.4329× 1018

Sigma ou notacao de somatoria

A notacao de somatorio ou sigma (a letra grega Σ) e usada para indicar a adiacaorepetida.

Se f e uma funcao definida sobre os numeros naturais, entao a notacao de somatorioe definida 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 variavel j e chamada variavel mudaporque ela pode ser substituıda 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 numero na basex, como foi visto anteriormente. Portanto:

n = akak−1...a0 =k∑

j=0

ajxj

Para evitar uma definicao envolvendo “...”, a notacao do somatorio pode ser definidorecursivamente como segue:

∑nj=a f(j) =

{0 se n < a

f(n) +∑n−1

j=a f(j) se n ≥ a

Page 114: MATEMÁTICA DISCRETA -Benedito Melo

114 CAPITULO 6. RECURSAO

Exemplo 84 Calcular:

8∑i=6

(2i− 3)

∑8i=6(2i− 3) = (2× 8− 3) +

∑7i=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 notacao∑

sao uteis.

∑nj=a(f(j) + g(j)) =

∑nj=a f(j) +

∑nj=a g(j)∑n

j=a c = c(n− a + 1) (c constante)∑nj=a cf(j) = c

∑nj=a f(j)

Exemplo 85

∑8j=6(2j − 3) =

∑8j=6 2j +

∑8j=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 recursivapara a resolucao de problemas.

Exemplo 86 Achar uma solucao recursiva para o numero de sequencias binarias de n-dıgitos sem 0’s consecutivos.

Uma sequencia binaria e uma sequencia de 0’s e 1’s. 11010 e uma sequenciabinaria de 5-dıgito que satisfaz a condicao.

Defina an como sendo o numero de sequencias binarias de n-dıgitos sem zerosconsecutivos.

Para n = 1 as sequencias possıveis sao 0, 1. Portanto, a1 = 2.

Para n = 2 as sequencias possıveis, que satisfazem as condicoes, sao 11, 10,01. Portanto, a2 = 3.

Page 115: MATEMÁTICA DISCRETA -Benedito Melo

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 sequencialegıtima de comprimento n - 1, pois colocando um 1 no fim de uma sequencianao quebra a condicao requerida. Para que uma sequencia com mais que ummembro termine em 0 e necessario que ela termine em 10, para satisfazer acondicao. Existe exatamente uma sequencia de comprimento n terminandoem 10, para cada sequencia legıtima de comprimento n - 2. Portanto:

an = o numero terminando em 1 + o numero terminando em 10= an−1 + an−2

A solucao recursiva do problema e entao:

an =

2 se n = 13 se n = 2

an−1 + an−2 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 numero das sequencias ternarias de n-dıgito que tem um numeropar de 0’s. Uma sequencia ternaria e aquela constituıda de 0’s 1’s e 2’s. A sequencia0011010 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 sequenciasterminando em 1 ou 2 sao formadas colocando-se um 1 ou um 2 apos uma sequencia decomprimento n - 1 que satisfaz a condicao. Por outro lado, uma sequencia terminandoem 0 e formada colocando-se um 0 apos uma sequencia de comprimento n - 1 que temum numero ımpar de 0’s.

O numero total de sequencias ternarias de comprimento n - 1 e 3n−1. Portanto, existem3n−1 − sn−1 sequencias ternarias de comprimento n - 1 com um numero ımpar de zeros.Portanto:

sn = no terminando em 1 ou 2 + no terminando em 0= 2sn−1 + (3n−1 − sn−1)= sn−1 + 3n−1

Existem duas sequencias de comprimento 1, que sao 1, 2. (aquela constituıda de um0 nao contem um numero par de 0’s.) Portanto, a solucao recursiva e:

sn =

{2 se n = 1

sn−1 + 3n−1 se n ≥ 2A formula recursiva gera a sequencia

Page 116: MATEMÁTICA DISCRETA -Benedito Melo

116 CAPITULO 6. RECURSAO

2, 2 + 3, 2 + 3 + 32...

isto e, 2,5,14,41,...

Exemplo 88 Um emprestimo de r$20.000 tem de ser pago em 12 prestacoes anuaisiguais. 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 dejuro de cada prestacao e diferente. A componente de juro se reduz cada ano, pois o debitodecresce a cada ano.

Para calcular o valor do juro num dado ano e preciso conhecer o debito nesse ano, noentanto so conhecemos o debito no inıcio(20.000 reais) e a exigencia de que no fim eleseja 0 reais. Entretanto se o debito do precendente fosse conhecido, seria possıvel calcularo juro, e subtraindo a parte fixa, determinar o debito no fim do ano. E conhecido o debitono inıcio do primeiro ano. Portanto, a exigencia para achar o debito, no fim de cadaano, como uma solucao recursiva esta satisfeita. A tabela de tempo abaixo ilustra o queacontece.

Debito(em reais)20.000 d1 dj d12 = 0

0 1 j 1210 ano j-esimo ano 120 ano

O primeiro ano comeca no tempo 0 e termina no tempo 1. Em geral, o j-esimo anocomeca no tempo j.

O debito no fim do j-esimo ano, apos cada pagamento no fim de cada ano ter sidofeito, e representado por dj reais.

O pagamento anual e representado por r reais.debito no fim do ano = debito no fim do ultimo ano + juros - o que foi pago

dj = dj−1 + (.14)dj−1 − r= (1.14)dj−1 − r

A formula recursiva para dj em termos de dj−1 e dj = (1.14)dj−1 − r.O fato base e d0 = 20000. Sabemos que d12 = 0. Aplicando repetidamente a etapa

recursiva resulta:d12 = (1.14)d11 − r

= (1.14)((1.14)d10 − r)− r= (1.14)2d10 − r[1 + 1.14]= (1.14)3d9 − r[1 + 1.14 + (1.14)2]

=...

= (1.14)12d0 − r[1 + 1.14 + (1.14)2 + ... + (1.14)11]= 20000(1.14)12 − r[1 + 1.4 + (1.14)2 + ... + (1.14)11]

Page 117: MATEMÁTICA DISCRETA -Benedito Melo

117

Dado que o debito tem que ser pago em 12 anos, temos d12 = 0 e a equacao pode,agora, ser resolvida para r. Usando a formula para a soma de uma serie geometricaobteremos:

r(1.1412−1)1.14−1

= 20000(1.14)12

portanto r = 20(1.14)12(.14)1.1412 − 1

= 3533.3865

Logo, o pagamento deve ser a base de 3533.39 reais ao ano.

DISCUSSAO: No exemplo anterior o caso base, d0 = 20000, e a formula recursiva ourelacao de recorrencia, dj = (1.14)dj−1−r, sao suficientes para gerar a sequencia d0, d1, ...,,mas, os termos sao expressos em termos de r. Para determinar o valor de r deve ser usadaa condicao adicional d12 = 0. Os valores para d0, d12, etc., sao chamados valores defronteira.

Exemplo 89 (busca binaria): Suponha que x =< x1, x2, ..., xn > e uma sequencia naqual x1 ≤ x2 ≤ ... ≤ xn. Um matematico descreveria esta sequencia como “monotonicacrescente”, enquanto um cientista da computacao descreve-la-ia como uma lista ordenada.O problema consiste em descobir se um certo numero(chamado chave), digamos a, e ummembro da sequencia. Isto e, achar o subescrito m tal que xm = a ou mostrar que anao esta na sequencia. Nao e pedido para achar cada ocorrencia de a, se existirem variosmembros da sequencia que sejam iguais a a.

Descreveremos o algoritmo da busca binaria recursivamente. Em seguida, estabelece-lo-emos como um procedimento iterativo. A busca sera efetuada sobre o subscrito de x,resultando uma mensagem “nao encontrado” se a nao estiver na sequencia ou o subescritom, se a = xm.

Etapa basica: Se a lista for vazia, registre “a nao esta na lista”.Etapa recursiva: Se a lista for nao vazia,

compare o elemento “do meio” da lista com a.se eles sao iguais, entao a foi encontrado.se o elemento do meio for menor que a,pesquise a lista do meio para “cima”.se o elemento do meio e maior do que apesquise a lista do meio para “baixo”.

Em cada caso, se a nao for encontrado a etapa recursiva produz uma lista “menor” queesta mais proxima da lista vazia. O agoritmo nao pode descartar uma lista que contenhaa. Portanto, ou sera encontrado um “a” ou termina com um registro de que nao existeum a na lista.

Page 118: MATEMÁTICA DISCRETA -Benedito Melo

118 CAPITULO 6. RECURSAO

Dado a sequencia crescente < xp, xp+1, ..., xm, ..., xq >, de x, defina o termo “central”como sendo o termo para o qual

m = [p + q

2] se p ≤ q; m nao esta definido para p > q.

p e o subescrito do menor termo e q do maior dos termos nao rejeitados na busca.Defina a lista “para cima” como sendo a sequencia crescente < xm+1, ..., xq > .Defina a “lista para baixo” como sendo a sequencia decrescente < xp, xp+1, ..., xm−1 >.

Algoritmo 9 (Busca binaria) Para pesquisar uma sequencia crescente para encontrara localizacao da chave a, ou mostrar que a nao esta na sequencia.

entradas: a, o elemento que estamos buscando.Uma sequencia < x1, ..., xn >, com os ındices de 1 a n,do primeiro ao ultimo elemento da sequencia.

precondicoes: x1 ≤ x2 ≤ ... ≤ xn.saıda: Um registro.

metodo: p← 1q ← nRepita

m← [p+q2

]se a < xm entaoq ← m− 1(pesquisar “lista para baixo”)senao, p← m + 1(pesquisar lista “para cima”)

ate xm = a ou p > q.se xm = a, entao registre “xm = a”;senao registre “a nao foi encontrado”.

Prova: A prova de que esse algoritmo, de fato, faz aquilo que pretendemos, e porinducao matematica sobre o numero de termos na sequencia.

Defina l como sendo q− p + 1 para a sequencia < xp, ..., xq >. Portanto, l e o numerode termos na sequencia.

Defina P (l) como sendo o predicado “o algoritmo pesquisa corretamente todos assequencias crescentes < xp, ..., xq > 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, xp. O ındice m e calculado

para ser [p+q2

] = p. Se xp = a esse fato e registrado. Se xp > a o valor de q e reduzido(q ← m− 1) e saimos do laco com p > q. Novamente o algoritmo termina com o registrocorreto 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 umnumero de termos k, ou menos, com k ≥ 1. Considere uma sequencia crescente com k +1

Page 119: MATEMÁTICA DISCRETA -Benedito Melo

119

termos. Existirao no mınimo dois termos na sequencia. O efeito da aplicacao do algoritmoe ou encontrar a ou remover no mınimo um dos termos da sequencia. O resultado e umasequencia que sera pesquisada corretamente(pela hipotese indutiva.)

Pelo princıpio(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 repeticao do laco. Cada passo ouencontra a ou divide pela metade o numero de termos na sequencia a ser pesquisada. Nopior caso, seria preciso log2n particoes para reduzir o numero de termos na sequencia aum. Por exemplo, uma sequencia com 1000 termos precisaria dez particoes pela metadepara reduzi-la a um termo. No futuro consideraremos a eficiencia 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. Estamossupondo que nao sabemos nada sobre a funcao “ln”, alem do fato de que seus valores saoavaliadas numa calculadora.

sequencia < xp, ..., xq > p > q p q m xm xm = a?x1, ..., x8 f 1 8 4 2.56 naox5, ..., x8 f 5 8 6 2.71 naox7, x8 f 7 8 7 2.77 sim

A pesquisa mostra que o 7o termo na sequencia e 2.77.

Recursao e listas

Um conjunto de elementos numa certa ordem pode ser chamado uma lista. As listas saomuito importantes em computacao. Na linguagem comum, uma sentenca pode ser vistacomo uma lista de palavras, e cada palavra pode ser vista como uma lista de caracteresalfabeticos. Potanto, uma lista pode consistir de uma lista de elementos, que por sua veztambem e uma lista. A seguir definiremos algumas funcoes sobre listas.

Lista. O conjunto de todas as listas sob consideracao sera denotado por lista. Aslistas podem ser representadas por l1, l2, .., 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 numeros naturais.O conjunto E sera usado para denotar um conjunto geral de elementos, a partir do qualsao escolhidos os elementos de qualquer lista particular.

Page 120: MATEMÁTICA DISCRETA -Benedito Melo

120 CAPITULO 6. RECURSAO

Lista vazia. Uma lista sem elementos e chamada lista vazia, escrito [ ].Comprimento. O numero de elementos numa lista e chamado seu comprimento.

Se l = [x1, x2, ..., xn] entao, comprimento(l) = n.

Existem tres funcoes definidas sobre listas que sao particularmente importante. Asfuncoes cabeca(), cauda() e concatenacao() fornecem uma base a partir da qual todas asoutras operacoes comuns em listas podem ser obtidas(por recursao).

Cabeca. A cabeca de uma lista e definida como sendo o seu primeiro elemento. Acabeca da lista l sera escrita cabeca(l), que e um elemento, nao uma lista. A cabeca naopode ser definida 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 serdefinida sobre a lista vazia.

Concatenacao. A lista obtida colocando a sequencia l2 apos a sequencia l1 e chamadaconcatenacao(l1, l2) e sera escrita l1concl2 ou conc(l1, l2).

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 definidas sobre listas. Muitas vezes, e vantagosoapresentar essas definicoes na forma recursiva, definindo uma funcao sobre uma lista emtermos da mesma funcao sobre uma lista menor. O exemplo a seguir mostra como algumasfuncoes sobre listas podem ser definida recursivamente.

Comprimento. Construir uma definicao recursiva da funcao comprimento(comp) deuma lista.

comp:lista−→ N

comp(l) =

{0 l = [ ]1 + comp(cauda(l)), senao

Reversa. Construir uma definicao recursiva da funcao que reverte a ordem dos ele-mentos numa lista.

Page 121: MATEMÁTICA DISCRETA -Benedito Melo

121

reverta : lista −→ lista

reverta(l) =

{l, se l = [ ]reverta(cauda(l)) conc [cabeca(l)], senao

Para ilustrar a operacao da definicao recursiva para a reversa ela sera aplicada sobrea 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 definicao 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 caracteree na posicao 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 definidas recursivamente como nos exemplos anteriores. A se-quencia geometria e a sequencia aritmetica sao sequencias bem conhecidas como sendodefinidas, mais naturalmente, por recursao.

Sequencia geometrica.

tn = rtn−1 para n ≥ 2, t1 = a

Desdobrando esta definicao obteremos a sequencia geometrica.

a, ar, ar2, ..., arn−1

sequencia aritmetica

tn = tn−1 + d para n ≥ 2, t1 = a

Page 122: MATEMÁTICA DISCRETA -Benedito Melo

122 CAPITULO 6. RECURSAO

Desdobrando esta definicao obteremos a sequencia aritmetica:

a, a + d, a + 2d, ..., a + (n− 1)d

A definicao recursiva para uma sequencia consiste de uma “relacao de recorrencia”mais as “condicoes iniciais”.

Uma relacao de recorrencia para uma sequencia t1, t2, . . . relaciona cada termo dasequencia a um ou mais termos precedentes.

As condicoes iniciais para essa relacao de recorrencia especifica os valores dos termost1, t2, . . . para aplicar a relacao de recorrencia.

O numero dos termos precedentes exigida pela relacao de recorrencia e igual ao numerodas condicoes e sera chamado a ordem da relacao de recorrencia.

Observacao(para aqueles que ja fizeram calculo). Uma relacao de recorrencia pode sertratada como uma versao discreta de uma equacao diferencial.

O seguinte exemplo ilustra a definicao recursiva de uma sequencia.

Exemplo 91 A definicao

an = 2an−1 − an−2, n ≥ 2 (relacao de recorrencia)a0 = 1, a1 = 2 (condicoes iniciais)

produz a sequencia 1,2,3,4,... A relacao de recorrencia e de ordem 2.

Exemplo 92 A definicao

sn − sn−1 = n− 1, n ≥ 2 (relacao de recorrencia)s1 = 0 (condicoes iniciais)

gera a sequencia 0,1,3,6,... A relacao de recorrencia e de ordem 1.

Exemplo 93 A relacao de recorrencia

an = 4an−2, n ≥ 2

e de ordem 2, embora so exista um termo na formula para an. Para determinar ostermos da sequencia sao necessarios dois valores iniciais.

Exemplo 94 A definicao

xn =

{2xn−1 + 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.

Page 123: MATEMÁTICA DISCRETA -Benedito Melo

123

Exemplo 95 A definicao

sn − 2sn−1 − 3sn−2 = 0, n > 1 (relacao de recorrencia)s0 = 3, s1 = 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 comcoeficientes constantes pois todos os termos sao da mesma especie, nomeadamente termosda sequencia com coefientes constantes.

Calculo dos termos de uma sequencia

Seja a sequencia s0, s1, ...,

Um calculo iterativo acha o n-esimo termo da sequencia calculando todos os termoss0, s1, ..., ate sn.

Um calculo recursivo acha sn encontrando os termos dos quais sn depende, e entaoachando os termos precedentes dos quais esses dependem e assim sucessivamente, ateatingir as condicoes iniciais, quando entao todos os termos necessarios para a avaliacaode sn serao calculados.

Um terceiro metodo para a avaliacao de sn e encontrar uma formula explıcita para sn

como uma funcao de n. Este metodo e chamado resolver a relacao de recorrencia parasn. A efeciencia de cada um desses metodos varia muito. Embora somente mais adiantediscutiremos eficiencia de algoritmos em geral, vale a pena analizar o problema agora nocontexto do calculo de termos da sequencia.

Considere a sequencia s0, s1, ... definida por uma relacao de recorrencia de segundaordem. Uma abordagem iterativa avalia s2 a partir dos valores dados de s1 e s0, s3 apartir de s2 e s1, ... e finalmente sn a partir de sn−1 e sn−2.

Existem, portanto, no todo n - 1 avaliacoes.Uma abordagem recursiva avalia sn a partir dos dois antecessores (sn−1, sn−2) e cada

um desses dois dos seus dois predecessores e assim por diante, dobrando o numero dechamadas da funcao em cada estagio no sentido de s0 e s1, cujos valores sao conhecidos.Para completar o calculo, as vezes e necessario avaliar entre 2n−1 e 2n−2 funcoes.

Para achar o 11o termo numa sequencia de segunda ordem, um metodo iterativo re-quereria 10 avaliacoes de funcoes e um metodo recursivo requereria entre 512 e 1024avaliacoes. 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 comparacaonao e universalmente em favor do metodo iterativo. Podemos, com frequencia, dispor ometodo recursivo de modo que ele possa competir, em termos de eficiencia, com o metodoiterativo.

Page 124: MATEMÁTICA DISCRETA -Benedito Melo

124 CAPITULO 6. RECURSAO

Por outro lado, se for possıvel achar a solucao da relacao de recorrencia, a avaliacaopor formula pode ate ser mais eficiente que a recursao ou a iteracao. Por exemplo,mostramos, abaixo, que a formula para sn, no exemplo 102 e sn = n + 1. Isto requerum unico calculo, enquanto o metodo iterativo necessita n− 1 desses calculos.

O esquema iterativo para o calculo dos termos numa sequencia pode ser facilmenteescrito como um algoritmo(e facilmente programado). O exemplo a seguir ilustra comoisso pode ser feito.

Exemplo 96 Desenvolver um algoritmo iterativo para calcular a relacao de recorrenciano 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 “otermo corrente e duas vezes o primeiro predecessor menos o segundo predeces-sor”.

entradas: n, um numero naturalprecondicoes: 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 an = 2an−1 − an−2)

p0← p1 (atualiza o segundo predecessor)p1← a (atualiza o primeiro predecessor)

saıda: a.poscondicoes: a = an, definido 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 nasequencia e conjecturando uma formula para o termo geral. E necessario provar que estaformula esta correta. Isto pode ser feito pelo metodo de inducao matematica.

O calculo de alguns termos do exemplo 102 gera:

n = 2 a2 = 2× 2− 1 = 3n = 3 a3 = 2× 3− 2 = 4n = 4 a4 = 2× 4− 3 = 5

Podemos conjecturar que an = n + 1. Mas estara esta formula correta?

Page 125: MATEMÁTICA DISCRETA -Benedito Melo

125

Prove que an = n + 1 e a formula correta para o termo geral da sequencia definidano exemplo 102, ou seja:

an = 2an−1 − an−2, n ≥ 2. a0 = 1, a1 = 2

Prova Etapa basica: a0 = 1 e a1 = 2

Portanto, an = n + 1 para n=0 e n=1.

Etapa indutiva: Assuma que a formula esta correta para dois termos suces-sivos especıficos da sequencia. Isto e, assuma que para um k especıfico

ak = (k − 1) + 1 = k

ak−2 = (k − 2) + 1 = k − 1

entao o sucessor e

ak = 2ak−1 − ak−2 pela relacao de recorrencia= 2(k)− (k − 1) por hipotese= k + 1

Portanto, a formula esta correta para n = k.

Pelo princıpio da inducao matematica:

an = n + 1 para todos os inteiros n ≥ 0.

Os exemplos 103 e 105 podem ser resolvidos analogamente.

Exemplo 97 sn = sn−1 + (n− 1), n ≥ 2, s1 = 0.

Sequencia: 0, 0+1, 0+1+2, 0 + 1 + 2 + 3, ...

A conjectura, sn = n(n−1)2

, pode ser provada por inducao matematica.

Exemplo 98 xn = 2xn−1 + 1, n ≥ 2, x1 = 1.

Sequencia: 1, 3, 7, 15, ... A conjectura xn = 2n − 1 pode ser provada porinducao matematica.

Page 126: MATEMÁTICA DISCRETA -Benedito Melo

126 CAPITULO 6. RECURSAO

Relacoes de recorrencia de segunda ordem, homogeneas e lineares

Nao e possıvel, em geral, conjecturar solucoes. No entanto, existem bons metodos pa-ra encontrar solucoes para algumas relacoes de recorrencias particulares. Analizaremosrelacoes de recorrencia de segunda ordem, homogeneas, de coeficientes constantes.

Teorema 7 (Linearidade) Se sn + asn−1 + bsn−2 = 0 tem solucao f(n) e g(n), entaoc1f(n) + c2g(n) tambem e uma solucao, para c1, c2 constantes arbitrarias.

Prova: Substitua sn por c1f(n) + c2g(n) no lado esquerdo da relacao de recorrencia.

(c1f(n) + c2g(n)) + a(c1f(n− 1) + c2g(n− 1))b(c1f(n− 1) + c2g(n− 1))

= c1(f(n) + af(n− 1) + bf(n− 2)) + c2g(n) + ag(n− 1)+bg(n− 2))

= c1 × 0 + c2 × 0= 0

As equacoes para as quais este teorema se verifica sao denominadas lineares. Assim,podemos agora estabelecer que relacooes de recorrencias homogeneas com coeficientes cons-tantes sao relacoes de recorrencia lineares. A prova nao depende da ordem da relacao derecorrencia e portanto podemos concluir que todas relacoes de recorrencia homogeneascom coeficientes constantes sao lineares.

Exemplo 99 Achar a solucao para o exemplo 95 repetido abaixo.

sn = 2sn−1 + 3sn−2, s0 = 3, s1 = 1.

Sabemos que as solucoes deste tipo de equacao tem a forma

sn = xn para algum x.

Tentemos a solucao f(n) = xn, onde x nao e ainda conhecido.

sn − 2sn−1 − 3sn−2 = 0 (6.1)

xn − 2xn−1 − 3xn−2 = 0 (6.2)

Page 127: MATEMÁTICA DISCRETA -Benedito Melo

127

Dividindo a segundo equacao por xn−2:

x2 + 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) = 3n e g(n) = (−1)n.

Pelo teorema da linearidade:

sn = c13n + c2(−1)n

.

Esta equacao e a solucao geral para a relacao de recorrencia 6.1. Observeque ela tem duas constantes arbitrarias c1 e c2 que corresponde ao fato de quea relacao de recorrencia e de segunda ordem.

Ascondicoes iniciais nos possibilitam determinar c1, c2.

s0 = c130 + c2(−1)0 = 3

s1 = c131 + c2(−1)1 = 1

c1 + c2 = 33c1 − c2 = 1

adicionando 4c1 = 4c1 = 1

c2 = 2

A solucao e, portanto,

sn = 3n + 2(−1)n, para n ≥ 0

A equacao 6.3

x2 − 2x− 3 = 0

e chamada equacao caractıstica para sn = 2sn−1 − 3sn−2 = 0.

Page 128: MATEMÁTICA DISCRETA -Benedito Melo

128 CAPITULO 6. RECURSAO

Exemplo 100 (Fibonacci): Os numeros de Fibonacci sao definidos como os termos dasequencia,

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 caracterıstica e

x2 − x− 1 = 0

com solucao: x = 1+√

52

ou 1−√52

Portanto, F (n) = c1(1+√

52

)n + c2(1−√5

2)n

Vamos escrever Fn em lugar de F (n). Com os valores iniciais F0 = F1 = 1obteremos:

c1 = 1+√

52√

5e c2 = −(1−√5

2√

5)

portanto Fn = 1√5(1+

√5

2)n+1 − 1√

5(1−√5

2)n+1

Considerando o valor absoluto do segundo termo podemos ver que Fn e ointeiro 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. SeuLiber 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 numeros sao chamadosnumeros de Fibonacci, tendo aparecido em muitas investigacoes.

6.0.1 EXERCICIOS

Em geral, a equacao caracterıstica de uma relacao de recorrencia homogenea de segundaordem com coeficentes constantes e uma equacao quadratica e como tal ela tem duas raızesdistintas, uma raız repetida ou nenhuma raız real. O caso da “raız repetida” e dado noexercıcio 31 que pode ser tentado por aqueles que tem algum conhecimento de numeroscomplexos.

Page 129: MATEMÁTICA DISCRETA -Benedito Melo

129

1.

(a)Calcule :∑3

i=0(i2 − 1) (b)

∑2i=2(2j + 3) (c)

∑1i=2(i + 1)

2. Uma funcao produto e definida sobre os numeros naturais por:

produto(n) =∏n

i=a f(i) =

{f(a)× f(a + 1)× ...× f(n) se n ≥ a1 se n < a

Dar uma definicao recursiva para a funcao produto.

3. (a)Compute∏5

i=1 i2 (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 quadradosseja vermelhos ou branco. Seja an o numero de maneiras de colorir a sequenciade tal modo que nunca dois quadrados vermelhos sejam adjacentes. Encontre umarelacao de recorrencia para an.

5. E necessario formar cadeias(strings) com as letras do alfabeto∑

= {a, b}. Seja sn

o numero de cadeias contendo n letras que nao contem a sequencia ab.

(a) Encontre uma formula recursiva para sn.

(b) Encontre uma formula para sn em termos de n.

6. Ache uma equacao recursiva para sn, o numero de sequencias de n-dıgitos compostasdos dıgitos 0, 1, 2, nas quais nenhuma das sequencias contem 1’s consecutivos.(Para n=5, 00121, 10121 sao exemplos possıves de tais sequencias. 20110 nao serapermitida.)

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. Sejadn o debito restante no fim do n-esimo mes, exatamente apos ter sido calculado ojuro do mes e o pagamento do mes corespondente.

Escrever uma formula recursiva que permita calcular dn.

Construir um algoritmo para determinar o numero de pagamentos, o total de jurospagos e a quantidade de pagamentos no ultimo pagamento.

8. Uma soma de r$5000 e depositada numa conta que paga 1% de juros compostosmensalmente. A partir daı, por dezoito meses, e acrescentado a conta r$200 ao fimde cada mes. Seja sn a enconomia da poupanca incluindo juros, na conta, no fimdo n-esimo mes, imediatamente apos terem sidos adicionados o valor de depositomensal e juros.

Page 130: MATEMÁTICA DISCRETA -Benedito Melo

130 CAPITULO 6. RECURSAO

(a) Encontre uma relacao de recorrencia para sn.

(b) Encontre s18.

9. Procuramos uma chave para a sequencia de chaves arranjadas em ordem ascendente.

x1, x2, ..., x100

Suponha que a chave que procuramos(desconhecida para nos) seja x18, a decimaoitava chave na sequencia. Usando pesquisa binaria para examinar a chave, qualchave seria examinada antes que a da direita fosse encontrada?

10. Cada numero na sequencia seguinte e armazenado correto ate duas casas decimaise colocados numa lista.

√150,√

151, ...,√

165

Caminhe numa busca binaria para determinar se 12.49 esta na lista, ou mostre quenao esta.

11. A funcao remova( ) mapeia um caractere, x, e uma lista de caracteres, l, em umalista. Ela esta definida 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 definicao.

Encontre a saıda para remova(e, < e, v, e, n >), e descreva em palavras o que e queremava() faz.

12. Defina, recursivamente, uma funcao removaPrimeiro() que remove a primeira ocorrenciade um caractere numa lista de caracteres.

13. Defina, recursivamente, uma funcao substitua() que substitui toda ocorrrencia deum caractere por um outro de lista de caracteres.

14. Construa uma definicao recursiva de uma funcao ePar?() que mapeia os numerosdo conjunto { 0, 1, 2, 3,..} em B = {t, f}, retornanado t se o numero for par e f ,se o numero for ımpar.

15. Construa uma funcao recursiva para o comprmento() de cadeias de um alfabeto A.

Page 131: MATEMÁTICA DISCRETA -Benedito Melo

131

16. Construa uma definicao recursiva para a funcao potencia(). A funcao e definidapara os inteiros a, n onde a > 0, n ≥ 0, por:

potencia(a,n)=

{1, se n = 0a× a× ...× a, (n fatores) se n ≥ 1

17. As mensagens sao transmitidas por um canal de comunicacao usando dois sinais. Atransmisao de um sinal requer um milesimo de segundo e o outro sinal requer doismilesimo. Seja xn o numero de diferentes mensagens consistindo de sequencias des-ses dois sinais que podem ser enviadas em n milesimo de segundos. Cada sinal numamensagem segue imediatamente o anterior. Encontre uma relacao de recorrenciapara xn, incluindo as condicoes iniciais.

18. A sequencia {xn} e dada por:

xn =

1 se n = 13 se n = 23xn−1 − 2xn−2 se n > 2

(a) Construa um algoritmo para achar x200.

(b) Resolver a relacao de recorrencia para achar uma formula para xn, em termosde de n,

19. Achar uma formula para sn em termos de n, dados s0 = 1 e sn = 3sn−1 + 2, paran ≥ 1.

20. Encontre uma formula para xn em termos de n, dados x0 = 4, s1 = 1 e para n > 1,

21. Encontre uma formula para sn em termos de n, dados s0 = 4, s1 = 1 e para n > 1,

sn + sn−1 − 2sn−2 = 0

22. Encontre uma formula para an em termos de n, dado que a0 = 4, a1 = 14 e

an − 6an−1 + 8an−2 = 0 para n ≥ 2.

23. Resolver a relacao de recorrencia(isto e, achar uma formula para an em termos den):

an = an−1 + 6an−2 se n ≥ 2; a0 = 2 a1 = 6.

Page 132: MATEMÁTICA DISCRETA -Benedito Melo

132 CAPITULO 6. RECURSAO

24. Mostre que sn = n5n e uma solucao da relacao de recorrencia:

sn − 10sn−1 + 25sn−2 = 0

Qual e a solucao geral?

25. Resolver a relacao de recorrencia:

an + 6an−1 + 9an−2 = 0 se n ≥ 2; a0 = 3, a1 = 6

26. Uma sequencia {an} e definida recursivamente:

a0 = 1, a1 = 3 e an = 2an−1 − an−2 para n ≥ 2

(a) Calcule alguns termos da sequencia e conjecture uma formula para an comouma funcao de n.

(b) Prove que a formula que voce encontrou esta correta. (Use inducao matematica.)

27. A sequencia {an} e definida recursivamente:

an = 2an−1 − an−2 para n ≥ 2 e a0 = 1, a1 = 2

(a) Calcule alguns termos da sequencia e conjecture o termo geral para an.

(b) Prove, por inducao matematica, que a formula para an esta correta.

28. Encontre e resolva uma relacao de recorrencia para o numero de sequencias binariasde comprimento n em que cada subsequencia de 0′s e de comprimento par. (Seja sn

o numero de tais sequencias de comprimento n. Partir o conjunto de sequencias decomprimento n naquele cujo ultimo membro e 0 e naquele cuja ultima entrada e 1.)

29. Seja sn o numero de cadeias de comprimento n contendo 0’s, 1’s e (-1)’s sem dois1’s consecutivos e sem dois (-1)’s consecutivos. Encontre uma relacao de recorrenciapara sn.

30. O numero de comparacoes e trocas no pior caso para o algoritmo “bublesort” satisfaza relacao de recorrencia sn = sn−1 + n− 1. Encontre a solucao e portanto, a ordemdo algoritmo.

Page 133: MATEMÁTICA DISCRETA -Benedito Melo

133

31. Resolver a relacao de recorrencia:

para n ≥ 2, sn + 2sn−1 = 2sn−2 = 0. s0 = 1, s1 = −2

32. Considere a proposicao:

(n∏

i=1

(i(n + 1) =1

3n(n + 1)(n + 2)).

(a) Escreva a proposicao para n=1.

(b) Prove que a proposicao se verifica 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 verifica para n=k, entao ela deve se verificartambem 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 ?

Page 134: MATEMÁTICA DISCRETA -Benedito Melo

134 CAPITULO 6. RECURSAO

Page 135: MATEMÁTICA DISCRETA -Benedito Melo

Capıtulo 7

Estruturas Algebricas

Nesta parte temos dois objetivos principais. O primeiro e identificar estruturas e proprieda-des algebricas que aparecem com frequencia em computacao, e prove uma linguagem paradescrever essas estruturas para simplificar e nos ajudar a entender alguns dos sistemas com-plexos envolvidos. O segundo objetivo e provar algumas propriedades gerais sobre as estruturasalgebricas, que serao muito uteis quando essas estruturas aparecerem em varios lugares.

O estudante deve ser capaz de usar a linguagem de estruturas e de identificar propriedadesalgebricas particulares. Num nıvel mais elevado, ele deve ser capaz de provar propriedadessobre estruturas algebricas.

Neste capıtulo, introduziremos semigrupos, monoides, grupos, conjuntos parcialmente or-denados, reticulados, algebras Booleanas e corpos finitos, com uma discussao das propriedadeselementares 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 definidas sobreeles.

Exemplo 101 A operacao de subtracao e definida sobre os inteiros e sobre osnumeros naturais. Entretanto, a subtracao sbre os inteiros e uma funcao total,enquanto a subtracao sobre os numeros naturais nao e total, mas somenteparcial. Em outra palavras, a subtracao e fechada sobre os inteiros mas, naosobre os naturais.

Existem outras caracterısticas estruturais atraves das quais poderıamos mostrar que ossistemas sao diferentes. Por exemplo, os numeros naturais(N) sao “bem-ordenados”(istoe, todo subconjunto de N tem um menor elemento), enquanto os numeros reais e osinteiros nao o sao.

135

Page 136: MATEMÁTICA DISCRETA -Benedito Melo

136 CAPITULO 7. ESTRUTURAS ALGEBRICAS

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 operacoessobre esses objetos. A algebra pode ser caracteriada pelas propriedades das operacoes. Asvezes estao envolvidas mais que uma operacao.

Operacoes e suas propriedades algebricas

Nestas notas de aula usamos muitas operacoes. Por exemplo, a multiplicacao e a adicaosobre os inteiros, a uniao e a interseccao sobre conjuntos. Parte da definicao de cadaoperacao e uma declaracao do conjunto sobre o qual ela esta definida. Por convinenciarepetiremos as definicoes ja apresentadas em outras partes.

Definicao 26 (Operacao binaria) Uma operac~ao binaria sobre um conjunto S e umafuncao de S × S em S.

Definicao 27 (Operacao unaria) Uma operac~ao unaria sobre um conjunto S e umafuncao de S em S.

Em cada caso, a palavra “sobre” significa que o “valor” da funcao nao pode esta forado conjunto. Ou seja, o conjunto e fechado sob a operacao.

Exemplo 102 A funcao de adic~ao e uma operacao binaria sobre o conjuntodos inteiros, Z. Isto e, Z e fechado sobre a adicao.

A funcaoadicao : Z× Z −→ Zadicao(x, y) = x + y

satisfaz a definicao para uma operacao binaria sobre Z.

Observacao 2 A disposicao x + y e denominada notacao infixa. +(x, y) e chamadanotacao 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 Mn×n, o con-junto das matrizes quadradas com n linhas e n colunas.

A multiplicacao e uma funcao dos pares ordenados das matrizes de tamanhon× n nas matrizes de tamanho n× n.

mult(A, B) = AB

Page 137: MATEMÁTICA DISCRETA -Benedito Melo

7.1. ALGEBRAS 137

Escrevendo A, B lado a lado queremos significar que A e B devem ser multiplicadosum com o outro nessa ordem. (Isto e chamado notacao por justaposic~ao.)

Exemplo 104 Com respeito ao conjunto uiversal U, o complemento e umaoperacao unaria sobre ℘(U), o conjunto potencia de U.

O complemento e definido 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 sobreA∗, o conjunto de todas as cadeias finitas construıdas sobre o alfabeto A.

Seja α = a1a2...ar e β = b1b2...bs cadeias em A∗, de modo que cada ai e cadabi esteja no alfabeto A.

A concatenac~ao e uma funcao de A∗ × A∗ em A∗, com

concatenacao(α, β) = α seguido de β= αβ= a1a2...arb1b2...bs

Propriedades estruturais das operacoes binarias

Embora poderemos usar os mesmos nomes para operacoes sobre conjuntos diferentes, asfuncoes propriamente sao diferentes. A diferenca e uma consequencia imediata da mu-danca no domınio. Pode acontecer que as propriedades estruturais sejam diferentes. Con-sidere a multiplicacao:

1. Para todos numeros reais x, y:

xy = yx

2. Para algumas matrizes n× n A, B:

AB 6= BA

Por exemplo,

(1 2−1 −2

) (1 12 2

)6=

(1 12 2

) (1 2−1 −2

)

Page 138: MATEMÁTICA DISCRETA -Benedito Melo

138 CAPITULO 7. ESTRUTURAS ALGEBRICAS

Em (1), a ordem das variaveis x e y nao e importante. Em (2) a ordem das matrizese importante. Dizemos que a multiplicacao definida sobre os reais e comutativa, mas amultiplicacao definida sobre as matrizes n× n nao e comutativa.

A propriedade comutativa e uma propriedade algebrica que pode pertencer a umaoperacao sobre um conjunto. Para generalizar a discussao e enfatizar as propriedadesestruturais em vez das propriedades especıficas sobre uma operacao particular, vamosdenotar uma operacao arbitraria sobre um conjunto S pelo sımbolo 2a. (Portanto, 2a eusado no lugar de qualquer um dos sımbolos ∗, +,∨,∧,∪,∩, concatenacao, ou qualqueroutra operacao.) Entao, poderemos definir as seguintes propriedades estruturais.

Definicao 28 (Comutativa) Uma operacao binaria, 2, sobre S, diz-se comutativa se esomente 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.

Definicao 29 (Associativa) Uma operacao binaria, 2, sobre S, diz-se associativa see 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 forinterpretada 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 definida:

Sejam f, g, h funcoes para as quais f(g(h(x))) esta definida para no mınimoum valor de x. Entao:

f ◦ (g ◦ h) = f ◦ g) ◦ h

O ponto e que a composicao de funcoes diz respeito a uma aplicacao de umafuncao “seguida de” uma aplicacao de uma segunda funcao.

Page 139: MATEMÁTICA DISCRETA -Benedito Melo

7.1. ALGEBRAS 139

x′f◦g //

g

²²

x′′′

x

h

??~~~~~~~~g◦h

//x′f

=={{{{{{{{{

Figura 7.1: Associatividade da composicao de funcoes

Para mostra que a composicao de funcoes e associativa, considere um elementox para o qual h(x) = x

′, g(x

′) = x

′′, f(x

′′) = x

′′′estejam todos definidos.

Entao, g ◦ h(x) = g(h(x)) = g(x′) = x

′′

e portanto f ◦ (g ◦ h)(x) = f(g ◦ h(x))) = f(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 domınios adequados:

f ◦ (g ◦ h) = (f ◦ g) ◦ h

O argumento e ilustrado usando um grafo dirigido da figura 7.1, no qual, porexemplo, se f mapeia x em x′, entao x, x

′sao representados pelos vertices do

grafo e a aresta (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 enum curso de algebra linear, onde aprenderıamos que matrizes correspondema certos tipos de funcoes(chamadas “‘transformacoes lineares”) e portanto, amultiplicacao de matrizes e associativa pelo exemplo 108.

Exemplo 109 : A subtracao sobre o conjunto dos inteiros nao e associativa.

Page 140: MATEMÁTICA DISCRETA -Benedito Melo

140 CAPITULO 7. ESTRUTURAS ALGEBRICAS

O contraexemplo 5 - (3 - 2) = 4 e (5 - 3) - 2 = 0 mostra que nao e verdadeque

x− (y − z) = (x− y)− z para todo x, y, z ∈ Z

Portanto, a subtracao nao e associativa sobre os inteiros.

Definicao 30 (Idempotente) Uma operacao binaria, 2, sobre S, diz-se idempotente see 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 ∈ UExemplo 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 numeros fosse idempotente seria necessariorestringir o conjunto de numeros a {0, 1}.

Definicao 31 (Identidade) Uma identidade para uma operacao binaria, 2, sobre S, eum 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 deuma identidade e que se ela existe ela e unica.

Teorema 8 Se existir uma identidade, e, para a operacao 2, sobre o conjunto s, entaoela e unica.

Prova:

Sejam e e f identidades para 2. Entao:

e = e2f = f

Isto e, e = f . Portanto, existe no maximo uma identidade.

Page 141: MATEMÁTICA DISCRETA -Benedito Melo

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 M2×2 e

I =

(1 00 1

)

Pela definicao de multiplicacao de matrizes temos:

(a bc d

)(1 00 1

)=

(a bc d

)=

(1 00 1

)(a bc 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 deA, 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.

Definicao 32 (Inversa) Seja e a identidade para 2, sobre S. O elemento x−1 e oinverso de x com respeito a 2, sobre S, se e somente se

x2x−1 = e = x−12x

Observe que cada x tem seu proprio inverso. Se 2 representa um tipo “aditivo” deoperacao e comum denotar a inversa de x por (−x).

Page 142: MATEMÁTICA DISCRETA -Benedito Melo

142 CAPITULO 7. ESTRUTURAS ALGEBRICAS

Teorema 9 Suponha que a operacao binaria, 2, sobre S, e associativa e que o elementoidentidade, e, existe. Se a e o inverso de x com respeito a 2, entao a inversa a eunica(para cada x).

Prova:

Suponha que a e b sao ambos inversos de x, com respeito a 2, sobre S. Sejae 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 (definicao 32)

Mas a igualdade e simetrica.

Portanto, a2x = e = x2a

Portanto, pela definicao 32, x e o inverso de a.

Exemplo 116 Nao existe inverso de 0, com respeito a multiplicacao(×), so-bre os numeros 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 onumero real nao nulo, a, existe um numero real 1

atal que

a× 1

a= 1 =

1

a× a

e portanto, 1a

e o inverso de a, para cada a ∈ (R− {0}).

Page 143: MATEMÁTICA DISCRETA -Benedito Melo

7.1. ALGEBRAS 143

Exemplo 118 Existe um inverso para cada numero real, com respeito a adicao,sobre os numeros reais.

A identidade para a adicao e 0 e para cada numero real a existe um numeroreal (−a) tal que

a + (−a) = 0 = (−a) + a.

Portanto, (−a) e o inverso de a, com respeito adicao, para cada numero reala.

Exemplo 119 Nao existe inverso de uma cadeia nao vazia, com respeito aconcatenacao.

A identidade e λ, a cadeia vazia. Considere uma cadeia α = a1a2 6= λ

concatenacao(a1a2, x) = a1a2x

e a1a2x nao pode ser a cadeia vazia para qualquer escolha de x, pois a1a2 enao vazia. Portanto, nao existe inverso de qualquer cadeia nao vazia, comrespeito a concatenacao.

Onde duas operacoes binarias forem definidas, sobre um conjunto S, pode existir umapropriedade estrutural envolvendo ambas as operacoes.

Definicao 33 (Distributiva) A operacao 2 diz-se distributiva, com respeito a ope-racao 4, sobre o conjunto S, se e somente se

x2(y4 z) = (x2y)4 (x2z)

Para todo x, y, z ∈ S.

Exemplo 120 A multiplicacao e distributiva, com respeito a adicao, sobre oconjunto dos numeros reais.

∀x, y, z ∈ R, x(y + z) = xy + xz.

Exemplo 121 A adiacao nao e distributiva, com relacao a multiplicacao,sobre os numeros reais.

Contraexemplo: 2 + (3×4) = 14, mas (2 + 3)×(2 + 4) = 30.

Page 144: MATEMÁTICA DISCRETA -Benedito Melo

144 CAPITULO 7. ESTRUTURAS ALGEBRICAS

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 possamser aplicadas a mais de tres elementos.

Propriedade distributiva generalizada

Suponha que a operacao 2 e distributiva, com relacao a operacao 4, sobre S.Entao, a propriedade distributiva generalizada, abaixo, tambem e verdadeira.

x2(y14 ...4 yn) = (x2y1)4 ...4 (x2yn)

Para todo x, y1, ..., yn ∈ S.

A prova e por inducao sobre n.

Propriedade associativa generalizada

Suponha que a operacao 2, sobre S, e associativa. Entao, para cada sequenciax1, x2, ..., xn ∈ S, (n ≥ 3), com qualquer disposicao de parenteses(satisfazendocorretamente a regra de parenteses) tem o mesmo valor que a seguinte ex-pressao:

x12x2...2xn.

A prova e por inducao sobre n.

Page 145: MATEMÁTICA DISCRETA -Benedito Melo

7.1. ALGEBRAS 145

Agora que definimos as propriedades estruturais basicas das opracoes sobre um con-junto, e provamos alguns resultados associados, e o momento de definir uma “algebra”formalmente.

Definicao 34 Uma algebra e um conjunto de objetos S, uma ou mais operacoes (2,4, ...),sobre S, satisfazendo algumas propriedades estruturais com relacao a essas operacoes.

Uma notacao para uma algebra e (S, 2,4, ...). As possıveis propriedades estruturaissao dadas nas definicoes 28- 33.

Algebras com uma operacao

Analisaremos tres algebras que tem uma operacao binaria. Os semigrupos e monoidessao usadas em linguagens formais e teoria dos automatos. Os grupos sao usados emautomatos e teoria do codigo.

Definicao 35 (Semigrupo) Um semigrupo, (S, 2), e um conjunto S, junto com umaoperacao binaria associativa, 2. sobre S.

Definicao 36 (Monoide) Um monoide, (M, 2), e um semigrupo no qual existe umaidentidade para a operacao 2, sobre M .

Definicao 37 (Grupo) Um grupo, (G, 2), e um monoide no qual cada elemento doconjunto tem uma inverso.

Se a operacao for comutativa, entao o grupo diz-se comutativo ou Abeliano. Oinverso de cada elemento de um grupo e unico pelo teorema 9. A identidade para umgrupo e unica pelo teorema 8.

A palavra Abeliano e em homenagem ao matematico noruegues Niels Henrik Abel(1802-1829) que usou o conceito de grupo na resolucao de equacoes algebricas por meio daextracao de raızes.

Exemplo 124 (A+, concatenacao) e um semigrupo.

1. A concatenacao e associativa. Portanto, a algebra e um semigrupo.

2. A+ consiste do conjunto de todas as cadeias sobre o alfabeto A, mas naoinclui a cadeia vazia. Portanto, nao existe identidade para esta algebra,nao sendo ela mais do que um semigrupo.

Exemplo 125 (A∗, concatenacao) e(um semigrupo e) monoide mas nao umgrupo.

Page 146: MATEMÁTICA DISCRETA -Benedito Melo

146 CAPITULO 7. ESTRUTURAS ALGEBRICAS

1. A concatenacao e associativa. Portanto, a algebra e um semigrupo.

2. A∗ consiste do conjunto de todas as cadeias sobre o alfbeto A, incluindoa cadeia vazia, λ. Mostramos anteriormente, no exemplo 115 que acadeia vazia, λ, e a identidade para esta algebra. Portanto, a algebra eum monoide.

3. Nem todo elemento tem um inverso. Como um contraexmplo, considerea cadeia α = carro. Nao existe nenhuma cadeia x que concatenado com“carro” resulte na cadeia vazia “ ”.

Portanto, a algebra nao e um grupo.

Exemplo 126 O conjunto dos inteiros formam um grupo com a adicao, (Z, +).Os numeros reais tambem formam um grupo com respeito a adicao, (R, +).Cada um desses grupo e Abeliano.

Exemplo 127 Os inteiros sem o 0 formam um grupo com respeito a multi-plicacao. A notacao para este grupo e (Z− {0},×). Os numeros reais sem o0 formam um grupo com respeito a multiplicacao, (R− {0},×).

Exemplo 128 O conjunto, P , de todas as permutacoes, sobre um conjuntofinito

A = {a1, a2, ..., an}

com a composicao de funcoes, e um grupo.

1. As permutacoes foram extensivamente discutidas em outra parte des-sas notas. Naquela parte definimos uma permutacao como uma funcao.Composicao de funcoes e uma operacao associativa. Portanto, P e umsemigrupo sob composicao de funcoes.

2. Uma permutacao

ι =

(a1 a2 ... an

a1 a2 ... an

)

e a identidade, e consequentemente P e um monoide.

3. Cada permutacao tem uma inversa, pois uma permutacao e uma funcaobijetiva(injetiva e sobrejetiva) de A sobre A. Para ver isto considere umapermutacao σ. Suponha que σ mapeia ai em aj. Escrevemos σ : ai 7→

Page 147: MATEMÁTICA DISCRETA -Benedito Melo

7.1. ALGEBRAS 147

aj. Defina σ−1 : aj 7→ ai, e, devido que σ e bijetiva, σ−1 tambem estadefinida. E claramente,

σ ◦ σ−1 = ι

Portanto, σ−1 e a inversa de σ, e assim P e um grupo sob a composicaode funcoes.

Para n > 2 o grupo de permutacoes nao e Abeliano. O numero de elementos no grupoe finito(igual n!). Por isso dizemos que e um grupo em finito.

Grupos

Vale a pena um estudo mais profundo de grupos. Eles tem estruturas suficiente para sereminteressantes e estao presentes como subestruturas em muitas algebras mais complexas.Em vez de usarmos a definicao 37, que faz referencias a outras definicoes, de monoide esemigrupo, e preferıvel listar todas as proprieddes de um grupo em um unico lugar.

Propriedades do grupo (G,2)

1. 2 e uma operacao binaria sobre G(ou G e fechado sob 2).

2. 2 e associativa.

3. Existe um e ∈ G, chamado a identidade com respeito a 2, tal que

e2x = x = x2e, para todo x ∈ G

4. para cada x ∈ G existe um elemento y ∈ G tal que

x2y = e = y2x

O elemento y e chamado o inverso de x, com respeito a operacao 2.

Se 2 e uma operacao do “tipo multiplicacao”, a inversa de x, usualmente, e escritox−1. Se 2 e uma operacao do “tipo adicao”, a inversa de x, normalmente, e escrita(−x).

Page 148: MATEMÁTICA DISCRETA -Benedito Melo

148 CAPITULO 7. ESTRUTURAS ALGEBRICAS

Exemplo 129 Dada a tabela para a operacao ×,× a ba a bb 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 suficientes 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 serrepresentadas convenientemente pela notacao pm, onde p pertence a um grupo (G, 2) em e um inteiro nao negativo.

Definicao 38 (Exponenciacao) Para p ∈ (G,2), um grupo com identidade e, e uminteiro m ≥ 0:

pm =

{e se m = 0pm−12p se m ≥ 0

Se 2 e um operador do “tipo aditivo” , entao, usualmente, escrevemos mp, em vez depm.

Exemplo 130 p3 = p22p = p2p2p.

Os parenteses podem ser omitidos uma vez que 2 e associativa.

Exemplo 131 p1 = e2p = p.

Page 149: MATEMÁTICA DISCRETA -Benedito Melo

7.1. ALGEBRAS 149

Definicao 39 (Exponenciacao nao negativa) Para p ∈ (G,2) um grupo, com m < 0inteiro:

pm = (p−m)−1

O valor de p−m e dado pela definicao 38. A notacao ( )−1 indica “a inversa doelemento 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. (pm)−1 = (p−1)m

2. pm2pn = pm+n

3. (pm)n = pmn

Prova: Cada parte deste teorema pode ser provada pela propriedade associtiva(generalizada)de 2 e as definicoes 38, 39 e o teorema 10.

Os resultados desse teorema podem ser facilmente lembrados pois eles sao identicosem aparencia aos resultados para a exponenciacao sobre os numeros reais.

Teorema 12 Para p no grupo (G,2):

pm2pn = pn2pm, para todo m, n ∈ Z.

Prova: Do teorema 11, segunda parte, e a propriedade comutativa da adicao, sobreZ:

pm2pn = pm+n = pn+m = pn2pm

Para todos os inteiros m,n.

Teorema 13 Seja p um elemento de um grupo finito (G,2) e n o numero de elementosde G, com n > 1. Entao, existe um s > 0 tal que ps = e, com e a identidade para 2,sobre S e s ≤ n.

Prova:

Page 150: MATEMÁTICA DISCRETA -Benedito Melo

150 CAPITULO 7. ESTRUTURAS ALGEBRICAS

A sequencia p, p2, ..., pn contem n + 1 elementos cada um dos quais esta emG(pela propriedade de fechamento).

G tem n elementos, portanto(pela princıpio da casa de pombos) dois dos ele-mentos na sequencia devem ser o mesmo.

Suponha p = pb, com 0 < a < b.

Seja s = b− a (a > 0).

Portanto, pspb−a = pb2p−a teorema 11, parte 2= pb2(pa)−1 definicao 39= pb2(pb)−1 argumento acima= e definicao 32

Alem disso, 0 < a < b ≤ n + 1, portanto s = b − a ≤ n e o teorema estaprovado.

Observacao 3 : Se n = 1 no teorema acima, entao s = 0, mas o resultado nao einteressante.

Teorema 14 (Grupo cıclico) Seja p um elemento de grupo (S, 2), com no mınimo doiselementos, e suponha que s e o menor inteiro positivo tal que ps = e, onde e e a identidadepara 2, sobre S. Entao,

C = {e, p, p2, ..., ps−1}com a operacao 2 e um grupo Abeliano. (C, 2) e chamado grupo cıclico e p e

chamado o gerador do grupo.Prova:

A existencia de s e garantida pelo teorema 13.

1. A operacao 2, sobre S e associativa. Cada elemento em C tambem estaem S. Portanto, 2, sobre C e associativa.

2. Existe uma identidade, e, em C.

3. Cada elemento de C tem um inverso.

Para 0 ≤ m ≤ s, pm2ps−m = pm+s−m = e = ps−m2,

Pelo teorema 11, parte 2 e a defincao 38,

Portanto, ps−m e o inverso de pm.

4. O grupo e Abeliano pelo teorema 12.

Page 151: MATEMÁTICA DISCRETA -Benedito Melo

7.1. ALGEBRAS 151

Colorario: Se S e finito e |S| = n dizemos que o grupo (S, 2) e um grupo finito deordem n. Dos teoremas 12 e 13 todo grupo finito ou e um grup cıclico ou contem umgrupo cıcico.

Exemplo 132 ({e, a, b}, +) com a tabela de operacao

+ e a be e a ba a b eb b e a

e um grupo cıclico.

Da tabela, a2 = b, e a3 = a2 + a = b + a = e

Ou usando a notacao “aditiva”, 3a = (a + a) + a = b + a = e.

Pelo teorema 13, ({e, a, a2}, +) e um grupo cıclico com gerador a.

Pela mesma razao, b3 = e, e portanto, o mesmo grupo pode ser escrito ({e, b, b2}, +),sendo, agora, b o gerador do grupo.

Exemplo 133 Defina:

e =

(1 2 31 2 3

), a =

(1 2 32 3 1

), b =

(1 2 33 1 2

)

Entao, o grupo de permutacoes ({e, a, b}, ◦} tem a tabela de operacao identicaque o exemplo anterior. A coneccao entre esses grupos e muito mais forteque o fato dos os elementos do primeiro podem ser mapeados um-a-um sobreos elementos do segundo. Dizemos que os grupos sao isomorficos(definicaoabaixo).

Exemplo 134 (Zm, +) e um grupo cıclico.

Este e um resultado geral correspondendo ao exemplo 132.

Definicao 40 (Isomorfismo) Dois grupos sao ditos isomorficos se e somente se existeuma funcao bijetiva mapeando os elementos de um sobre os elementos do outro, com apropriedade de que a funcao mapeia o “produto” de quaisquer dois elementos em um grupono produto das imagens daqueles elementos no outro grupo.

Em outras palavras, sejam (G1,2) e (G2,4) grupos e φ uma funcao mapeando G1

sobre G2. Entao, para todo x, y ∈ G1 :

φ(x2y) = φ(x)4 φ(y).

A funcao φ e chamada um isomorfismo do grupo G1 sobre o grupo G2.

Page 152: MATEMÁTICA DISCRETA -Benedito Melo

152 CAPITULO 7. ESTRUTURAS ALGEBRICAS

7.2 Estruturas ordenadas

Anteriormente, definimos propriedades de operacoes(comutatividade, associatividade, eassim por diante) e identificamos diferentes algebras(semigrupos, monoides e grupos) pelaspropriedades das operacoes definidas sobre elas.

Nesta secao analisaremos as estruturas nas quais e importante uma relacao de ordemparcial.

Conjuntos parcialmente ordenados e reticulados

Em outra parte destas notas, definimos uma relacao de ordem parcial como sendo umarelacao reflexiva, antisimetrica e transitiva. Um conjunto sobre o qual esta definida umarelacao de ordem parcial e chamado um conjunto parcialmente ordenado. (Algunsautores contraem esse nome para poset, as iniciais em ingles, partially ordered set.Para simplificar, usaremos sempre essa abreviacao).

Definicao 41 (Poset) Um conjunto parcialmente ordenado(poset), (S, ρ), e um con-junto S no qual esta definida uma ordem parcial, ρ.

A notacao (S, ρ) pretende diferenciar um poset de uma algebra. A letra grega ρ e usadapara indicar uma relacao de ordem parcial e nao deve ser confundida com um sımbolo deoperacao. Alguns autores usam o sımbolo ¹ no lugar de ρ.

Exemplo 135 Seja S = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} e ρ a relacao “divide”, quesignifica “divide exatamente sem nenhum resto”. Por exemplo, 2ρ2, 2ρ0, 2ρ6,mas nao 4ρ2 e tambem nao 5ρ7.

A relacao “divide” e uma relacao de ordem parcial porque:

1. aρa para todo a ∈ S;

2. se aρb e bρa, entao a = b;

3. se aρb e bρc, entao aρc;

Divide nao e uma relacao de ordem total sobre esse conjunto porque, por exem-plo, nem 5ρ7 e nem 7ρ5.

Exemplo 136 Seja S = {1, 2, 3, 5, 6, 10, 15, 30}, e ρ a relacao “divide” sobreS. A relacao ρ nao e uma ordem total sobre S porque, por exemplo, nem 2ρ3nem 3ρ2.

Exemplo 137 Seja S = o conjunto potencia de{a, b, c}, e ρ = “e um subconjunto de”e (ρ e a relacao ⊆).

A relacao ρ e uma ordem parcial porque:

Page 153: MATEMÁTICA DISCRETA -Benedito Melo

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 divideo outro. Se os elementos sao o mesmo, sabemos que um numero divide a si proprio. Seeles 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 representamos elementos de S e dois vertices a, b sao ligados por uma aresta se aρb, exceto que:

1. como sabemos que ρ e reflexiva nao e considerado necessario o laco correspondentea aρa, e

2. como sabemos que ρ e transitiva nao e considerado necessario desenhar a arestapara aρc se aρb e bρc estiverem incluıdos.

Tradicionalmente os grafos eram desenhados sem setas e com o “menor” elemento naparte mais baixa(bottom). Aqui, ( 7.2) ele foi desenhado com o “menor” elemento naesquerda 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 caminhono diagrama de Hasse( 7.2) vai(mais ou menos) da esquerda para a direita.

Page 154: MATEMÁTICA DISCRETA -Benedito Melo

154 CAPITULO 7. ESTRUTURAS ALGEBRICAS

7 4

~~~~

~~~~

8

2

¢¢¢¢

¢¢¢

6

~~~~

~~~~

1

====

=== 3 9

~~~~

~~~~

5 10

Figura 7.2: Diagrama de Hasse para o exemplo 135

2

@@@@

@@@@

¢¢¢¢

¢¢¢

10

BBBB

BBBB

1

====

=== 5

~~~~~~~~

@@@@

@@@@ 6

~~~~

~~~~

30

||||

||||

3 15

Figura 7.3: 136

Page 155: MATEMÁTICA DISCRETA -Benedito Melo

7.2. ESTRUTURAS ORDENADAS 155

Definicao 42 (Infimo(inf)) Seja (S, ρ) um poset. Para quaisquer a, b ∈ S um elementoi ∈ S, com a propriedade seguinte, e chamado um ınfimo para a, b.

1. iρa e iρb;

2. ∀x ∈ S[(xρa ∧ (xρb)]→ xρi;;

Exemplo 138 Da figura 7.2, pelo exemplo 135, pode ser visto que

inf(4, 10) = 2; inf(2, 5) = 1; inf(6, 3) = 3; inf(10, 10) = 10

Teorema 15 Se (S, ρ) e um poset e a, b ∈ S, entao (a, b) tem no maximo um ınfimo.Prova:

Suponha que x, y ∈ S sao ınfimos de a, b.

Entao, pela definicao 42, parte 1 : xρa, xρb e yρa, yρb

parte 2 : xρy e yρx

Portanto, pela antisimetria, x = y.

Definicao 43 (Supremo(sup)) Seja (S, ρ) um poset. Para quaisquer a, b ∈ S, um ele-mento s, com as propridades seguintes, e chamado um supremo para a, b.

1. aρs bρs;

2. ∀x ∈ S[(aρx) ∧ (bρx)]→ sρx

Exemplo 139 Da figura 7.2, pelo exemplo 135, podemos ver que

sup(6, 10) nao esta definido; sup(2, 5) = 10; sup(6, 3) = 6; sup(7, 7) = 7.

Exemplo 140 Da figura 7.3, pelo o exemplo 136, podemos ver que

sup(6, 10) = 30; sup(2, 5) = 10.

Teorema 16 Se (S, ρ) e um poset e a, b ∈ S, entao (a, b) tem no maximo um supremo.Prova:

Page 156: MATEMÁTICA DISCRETA -Benedito Melo

156 CAPITULO 7. ESTRUTURAS ALGEBRICAS

Suponha que x, y ∈ S sao supremos de a, b.

Pela definicao 43 e um argumento similar ao do teorema 15,

xρy e yρx

Pela antisimetria, x = y.

Ambos, o supremo e o ınfimo mapeiam pares de elementos em S num unico elementode S. Se o supremo e o ınfimo estivessem definidos para todos os pares de elementos emS, eles poderiam ser vistos como operacoes binarias, sobre S. Neste caso, vamos ter umsımbolo de operador infixo para cada um deles.

Notacao, se sup e ınf sao operacoes binarias sobre S, entao:

sup(a, b) = a t b

inf(a, b) = a u b

A estrutura para a qual todo par de elementos tem um supremo e um ınfimo e chamadoum reticulado.

Definicao 44 (Reticulado) Um reticulado e um poset, (L, ρ),, no qual todo par de ele-mentos, em L, tem um supremo e um ınfimo.

Um reticulado (L, ρ) tem duas operacoes binarias definidas sobre ele, e portanto, po-demos construir a partir dele a algebra (L,t,u).

Exemplo 141 1. O poset do exemplo 135 nao e um reticulado porquenem todo par de elementos tem um supremo e um ınfimo. (Por exemplo,sup(6, 10) nao esta definido sobre o conjunto.)

2. O poset do exemplo 136 com a relacao de ordem paracial “divide”(ρ) eum reticulado. As operacoes binarias sao “o maximo divisor comum”(u)e “mınimo multiplo comum”(∪).

3. O poset do exemplo 137 com a relacao “e um subconjunto de”(ρ) e umreticulado. As operacoes binarias sao “intersecao”(∩) e a uniao(∪).

O poset do exemplo 135, (S, ρ), como observamos acima, nao e um reticulado. Vimosque o par (6, 10) nao tinha supremos em S. Poderıamos aumentar S incluindo 30, mas,entao terıamos de incluir outros elementos. Se S fosse aumentado ate o conjunto dosinteiros, Z, entao a estrutura seria um reticulado. Cada par de inteiros tem um supremoe um ınfimo em Z, e portanto (S, ρ) seria um reticulado. Mas, o conjunto dos inteiros eilimitido superiormente e inferiormente e, desse modo nao existe o maior elemento nemo menor elemento.

Page 157: MATEMÁTICA DISCRETA -Benedito Melo

7.2. ESTRUTURAS ORDENADAS 157

Definicao 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,aρm. O elemento b ∈ S e chamado o mımimo ou bottom ou o menor elemento se paratodo a ∈ S, bρa.

No exemplo 135, o menor elemento e 1, mais nao existe topo.

No exemplo 136, o topo e 30 e o mınimo 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 Thought1, em 1854, no qual eleestabeleceu uma algebra da logica deste tipo. As algebras booleanas sao usadas no proces-samento de informacoes e na teoria do chaveamente(ou circuitos digitais.)

Uma algebra booleana(tambem chamaremos algebra de boole) nao precisa que nelaesteja definida uma relacao de ordem. Incluimo-la, aqui, apos reticulado, devido a suaassociacao com esta estrutura.

Definicao 46 (Algebra booleana) Uma algebra booleana e uma algebra (B, +, .,−, 0, 1),onde + e . sao operacoes binarias sobre B que sao comutativas, associativas, e idempo-tentes. Cada operacao binaria e distributiva, uma em relacao a outra. A constante 0 e aidentidade para + e 1 a identidade para ·. A operacao -, sobre B, e uma operacao unariae satisfaz a propriedade

a + a = 1 e a.a = 0 ∀a ∈ B

O conjunto B deve conter no mınimo dois elementos 0, 1. Os sımbolos podem ser con-siderados como operacoes “nularias” mapeando do conjunto vazio para 0, 1, em B. Destamaneira, o esquema notacional para uma algebra e preservado. A seguir apresentaremosexemplos de algebras booleanas.

Exemplo 142 ({0, 1}, +, .,−, 0, 1) com as seguintes tabelas de operacoes

+ 0 10 0 11 1 0

× 0 10 0 01 0 1

0 = 1.1 = 0

1Uma Investigacao das leis do pensamento, literalmente.

Page 158: MATEMÁTICA DISCRETA -Benedito Melo

158 CAPITULO 7. ESTRUTURAS ALGEBRICAS

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 mınimo multiplo comum de a e b”, a.b denota “o maximo divisor dea e b, e x denota o numero 30

x, e uma algebra booleana.

O teorema seguinte fornece as propriedade gerais que devem verificar em toda algebrabooleana. Elas podem ser provadas usando a definicao 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

Algebras booleanas e reticulados

Nesta secao abordaremos a construcao de uma algebra booleana a partir de um reticuladoe reciprocamente a construcao de um reticulado a partir de algebra booleana,

Iniciando de um reticulado

Ja observamos que para um reticulado, (L, ρ), o ınfimo(u) e o supremo(t) sao operacoesbinarias sobre L. Podemos provar que essas operacoes, sobre L, sao comutativas, asso-ciativas e idempotentes.

Se, alem disso, cada operacao for distributiva com relacao a outra, o reticulado e umreticulado distributivo.

Se o reticulado tiver um topo(1) e um bottom(0), entao uma operacao unaria, complemento(′),pode ser definida, sobre L, de tal modo que para cada elemento a ∈ L existe um elementoa′em L, tal que

Page 159: MATEMÁTICA DISCRETA -Benedito Melo

7.2. ESTRUTURAS ORDENADAS 159

a u a′= 0 a t a

′= 1

(isto e, inf(a, a′) = 0 e sup(a, a

′) = 1. Um reticulado com um bottom e um to-

po e uma operacao de complemento, sobre o conjunto, e chamado um reticulado com

complemento.

Agora, se (L, ρ) for um reticulado distributivo com complemento, com bottom, 0, etopo, 1, podemos mostrar que (L,t,u,′ , 0, 1) e uma algebra booleana.

Os exemplos 143 e 144 do conjunto de algebras booleanas foram derivados dessamaneira dos reticulados dos exemplos 136 e 137.

Iniciando de uma algebra booleana

Seja (S, +, .,−, 0, 1) uma algebra booleana.Para a, b ∈ S, defina a ¹ b se e somente se a.b = a.A relacao “ ¹ ” assim definida e uma ordem parcial.Prova:

Devemos provar as proposicoes na algebra booleana que se traduzem nas pro-priedades reflexiva, antisimetric e transitiva da relacao definida acima.

1. a.a = a (. e idempotente). Portanto, pela definicao, a ¹ a e “¹” ereflexiva.

2. Se a.b = a e b.a = b, entao a = b (pois . e comutativa). Logo, pordefinicao, se a ¹ n e b ¹ c, entao a = b e ′′ ¹′′ 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 definicao, se a ¹ b e b ¹ c, entao a ¹ c e “¹” e transitiva.

A definicao 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 relacao ¹, definida por a ¹ b se e somente se a.b = a.

Entao ∀a, b ∈ S, inf e sup existem, definidos por

Page 160: MATEMÁTICA DISCRETA -Benedito Melo

160 CAPITULO 7. ESTRUTURAS ALGEBRICAS

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 definicao de “¹”

(a.b) ¹ a (a.b) ¹ b

Portanto, a primeira parte da definicao 42 esta satisfeita.

Agora, suponha que x ¹ a e x ¹ b.

Pela definicao 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 definicao 42 esta satisfeita, e

a.b = inf(a, b)

2. (sup) Esta parte e similar a parte 1, usando +, em lugar de ., a definicao43, em lugar da definicao 42.

Teorema 21 O reticulado (S,¹) tem como menor elemento 0, e como maior elemento1.

Prova:

Page 161: MATEMÁTICA DISCRETA -Benedito Melo

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 definicao, 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 deixadacomo exercıcios.

1. (S,¹) e um reticulado distributivo.

2. (S,¹) e um reticulado com complemento.

7.3 Corpos finitos

Um corpo e uma algebra na qual as quatro operacoes binarias, adicao, subtracao, multi-plicacao e divisao estao definidas sobre o conjunto. Uma outra maneira de descrever aestrutura de corpo e defini-la como um grupo (S, +), junto com o grupo (S,×), onde aoperacao binaria × e distributiva em relacao a +.

Definicao 47 (Corpo) Se (S, +) e um grupo, (S − {0},×) e grupo e × e distributiva,com relacao a +, entao a algebra (S, +,×) e chamada um corpo.

Os exemplos obvios de corpos sao os sistemas de numeros reais, R e de numeros ra-cionais, Q.2 Sabemos que R e Q tem, definidas sobre eles, a relacao de ordem “≤”(total),mas nao existe nada na definicao de um corpo que de origem a essa propriedade. Devemser impostas algumas propriedades adicionais, sobre um corpo, para que ele venha a teruma relacao de ordem. A seguir apresentaremos a maneira de fazer isso.

Definicao 48 (Corpo ordenado) Um corpo, com conjunto base F , diz-se ordenado se elecontem um subconjunto nao vazio, P (os positivos) que e fechado com respeito as operacoesde adicao e multiplicacao do corpo e P , {0}, F − P e uma particao de F na qual cadacelula e nao vazia.

A relacao de ordem parcial “≤” e entao definida por

∀x, y ∈ F, x ≤ y se e somente se y − x ∈ P − {0}2Mas,nao Z, pois (Z− {0},×) nao e um grupo.

Page 162: MATEMÁTICA DISCRETA -Benedito Melo

162 CAPITULO 7. ESTRUTURAS ALGEBRICAS

Embora seja possıvel derivar todas as proprieda mais usuais da relacao de ordem “≤ ”,a partir da definicao, isso nao nos mostraria nada de novo. O proposito aqui e meramentemostrar que um corpo nao e necessariamente ordenado. A seguir sao exemplos de corposfinitos, nenhum dos quais e ordenado.

Exemplo 145 Seja S = {0, 1}. Defina a adicao e a multiplicacao pelastabelas:

+ 0 10 0 11 1 0

× 0 10 0 01 0 1

Entao, (S, +,×) e um corpo.

Exemplo 146 Seja S = {0, 1, 2}. Defina a adicao e a multiplicacao pelastabelas:

+ 0 1 20 0 1 21 1 2 02 2 0 1

× 0 1 20 0 0 01 0 1 22 0 2 1

Entao, (S, +,×) e um corpo.

O corpo no exemplo 146 nao e ordenado. Observe que 1+2 = 0, e portanto, o inversode 1, com respeito a adicao, e 2, isto e, (-1) = 2. Devemos tentar enquadrar a definicaode um corpo ordenado definindo 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 resıduos concruentes modulo m, com m pri-mo, com a adicao e a multiplicao modulo m, e um corpo.

7.4 EXERCICIOS

1. Mostre que a divisao sobre o conjunto dos numeros reais nao e associativa.

2. Dar um exemplo para a assertiva “a concatenacao e associativa sobre A∗.

3. Que significa a assertiva “A intersecao e idempotente sobre o conjunto das potenciasde A”?

Page 163: MATEMÁTICA DISCRETA -Benedito Melo

7.4. EXERCICIOS 163

4. Seja L = {1, 3, 5, 7, 15, 21, 35, 105} e ρ a relacao “divide” sobre L. Entao, (L, ρ) eum 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 operacaocomplemento para o reticulado.

5. Seja B = {t, f}.Considere a algebra (B,∧,∨).

(a) Estabeleca em sımbolos o que significa 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 M2×2, o conjunto das matrizes 2 por 2 com entras reais, e definidapor

(a11 a12

a21 a22

)+

(b11 b12

b21 b22

)=

(a11 + b11 a12 + b12

a21 + b21 a22 + b22

)

Considere a algebra (M2×2, +).

(a) qual e identidade para a adicao?

(b) Cada matriz em (M2×2, +) tem uma inversa?

(c) A adicao e comutativa?

(d) A adicao e associativa?

(e) A adicao e idempotente?

(f) (M2×2, +) e um semigrupo? um monoide? um grupo? um grupo Abeliano?

7. Quais propriedades estruturais se verificam para a operacao “conc” vista como umaoperacao sobre listas?

8. Aqui esta uma tabela de “multiplicacao” para a algebra (A, ∗), com A = {a, b, c}.

Page 164: MATEMÁTICA DISCRETA -Benedito Melo

164 CAPITULO 7. ESTRUTURAS ALGEBRICAS

∗ a b ca a a bb a b cc b c b

(a) * e um isomorfismo?

(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. Escrevatodas as expressoes com cinco termos iguais a

(a2(b2(c2(d2e)))).

10. Use o fato de que a operacao sobre os numeros reais e associativa para provar quepara a, b, c, d, e, f ∈ R

(a× b)× ((c× d)× (e× f)) = a× (b× (c× (d× (e× f))))

11. Prove que um grupo cılico e abeliano.

12. Na prova do teorema 11, parte 1, devemos mostrar que

pm2(p−1)m = e = (p−1)m2pm

Pode ser construıda uma prova assumindo que m ≥ 0, para o caso 1 e m < 0, parao caso 2. O caso e feito usando a propriedade associativa generalizada. Uma provado caso 2 usa a definicao 29, o teorema 10 e a definicao 32. Faca a prova docaso 2.

13. Dado o conjunto A, (℘(A),⊆) e um reticulado. Qual e o significado da assertiva:∪, sobre ℘(A) e associativa? A assertiva e verdadeira?

14. Seja (L, ρ) um reticulado. Prove:

Page 165: MATEMÁTICA DISCRETA -Benedito Melo

7.4. EXERCICIOS 165

(a) sup(t), sobre L, e comutativa.

(b) inf(u), sobre L, e idempotente.

15. Seja S o conjunto {1, 2, 3, 5, 6, 10, 15, 30}. Suponha que a + b denota “o mınimomultiplo comum de a, b”, a.b denota “o maximo divisor comum de a, b e x denota o“numero 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.

Defina a relacao “º”, sobre S, por

a º b se e somente se a + b = a

Prove que a relacao assim definida induz uma ordem parcial sobre S.

Page 166: MATEMÁTICA DISCRETA -Benedito Melo

166 CAPITULO 7. ESTRUTURAS ALGEBRICAS

20. Seja (S,º) o reticulado induzido sobre a algebra booleana (S, +, .,−, 0, 1) pela re-lacao “¹” definida 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,¹).

Page 167: MATEMÁTICA DISCRETA -Benedito Melo

Capıtulo 8

Grafos e arvores

8.1 Introducao

Muitas das estruturas, em computacao, podem ser modeladas por grafos. Por isso, nestecapıtulo, introduziremos a linguagem dos grafos e analizaremos o problema da construcaode uma arvore geradora para um grafo conexo. Para resolver muitos dos problemas emgrafos e preciso selecionar um algoritmo de arvore geradora. Mostraremos que a relacao“conectado” e uma relacao de equivalencia no conjunto dos vertices de um grafo.

Um tema importante neste capıtulo diz respeito a relacao entre figuras(geometricas)e as estruturas algebricas, muito complexas para serem desenhadas de forma util. As fi-guras sao importantes para suscitar novas ideias e possibilitar o entendimento das ideiasdos outros. Mas para serem efetivas, as figuras precisam ser traduzidas em estruturasalgebricas, de modo que os grandes problemas possam ser manipulados pelos computado-res. Os matematicos dao ao nome “grafo” um significado especial. Esta palavra descreveum conjunto de vertices (ou nos), alguns ou todas dos quais podem ser conectados porarestas(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 emuitas outras.

8.2 Grafos

Um grafo e uma estrutura discreta que consiste de um conjunto de vertices em que algunsdeles ou todos podem ser ligados por arestas. A figura 8.1 apresenta um grafo no qualos vertices(tambem chamados nos) sao rotulados com v1, v2, v3, v4 e as arestas(tambemchamadas de arcos) a, b, c, d, e. Um vetice e representado pictoricamente por um pequenocırculo, ◦, e as arestas por uma linha ou uma curva lingando-os.

167

Page 168: MATEMÁTICA DISCRETA -Benedito Melo

168 CAPITULO 8. GRAFOS E ARVORES

Figura 8.1: Um grafo

A aresta a diz-se incidente com o vetice v1 e com o vertice v2. Os vertices v1 e v2

sao ditos adjacentes porque eles estao ligados por uma aresta. As arestas c e d sao ditasarestas multiplas porque elas sao incidentes com os mesmos pares de vertices v3, v2. Aaresta a e chamada um laco porque ela e incidente com exatamente um vertice. Um grafoque nao possui arestas multiplas ou lacos e chamado um grafo simples. Se for permitidasarestas multiplas o grafo sera chamado multigrafo. Um pseudografo e um grafo onde saopermitidos lacos e arestas multiplas. Chamaremos grafo geral aquele onde sao permitidostodas as posssibilidades. Autores diferentes, em geral, usam nomes diferentes para essesgrafos.

Definicao 49 (Grafo) Um grafo, G, e um conjunto, V (G), de objetos, chamadosvertices, junto com um multiconjunto,1 E(G), de arestas. Cada elemento de E e ummulticonjunto de dois vertices de V . Se V = Ø o grafo sera chamado grafo nulo.

Um grafo G(V, E, i) pode ser classificado usando a funcao de incidencia

i : E −→ {{u, v}|u, v ∈ V }

onde:

1. Se i for injetiva e u 6= v, entao G e um grafo simples. Neste caso, cada arestae identificada, sem ambiguidade, pelos vertices com os quais ela e incidente(nestecaso os multiconjuntos sao conjuntos);

2. Se i for muitos-um(nao injetiva) e u 6= v, entao G e um multigrafo. Neste caso,sao possıveis arestas multiplas;

3. Se i for muitos-um, com nenhuma exigencia de que u e v sejam distintos, entao Ge chamado um pseudografo ou um grafo geral. As arestas multiplas e os lacos saopermitidos.

1Um multiconjunto e uma extensao do conceito de conjunto, onde se permite que um elemento serepita varias vezes, por exemplo, {2, 2, 3, 1} e um multiconjunto.

Page 169: MATEMÁTICA DISCRETA -Benedito Melo

8.2. GRAFOS 169

Figura 8.2: Grafo para o exemplo 1

Exemplo 148 Suponha que V (G) = {v1, v2, v3}, E(G) = {e1, e2} e

i(e1) 7→ {v2, v1}, i(e2) 7→ {v1, v3}

Entao, G(V, E, i) e um grafo simples com tres vertices e duas arestas. Po-demos desenhar a figura 8.2 para representar esse grafo. Os vertices v1 ev2 sao adjacentes, mas v2 e v3 nao sao. A aresta e1 e incidente com v2 ev3. Como o grafo e um grafo simples, as arestas podem ser descritas como2 − subconjuntos de vertices sem ambiguidades. Por exemplo, e1 = {v2, v1}.As arestas sao desenhadas como segmentos de reta. Entretanto, as arestaspodem ser desenhadas como linhas curvas, por quem assim o desejar.

Definicao 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 dearestas no desenho do grafo, para indicar o sentido.

Definicao 51 (Subgrafo) Um subgrafo de um grafo e um grafo cujos vertices formamum subconjunto, S, de V (G) e cujas arestas contem somente vertices de S, que, por suavez, e um subconjunto de E(G).

As vezes, e util colocar numeros nas arestas de um grafo. Por exemplo, o numeropode representar a distancia ou capacidade de fluxo. Grafos como esses sao chamadoscom peso ou com arestas rotuladas. As vezes, esses graficos sao chamados redes.

Definicao 52 (Rotulo de aresta) Um rotulador de arestas de um grafo e uma funcaorotuloDeAr : E(G) −→ W

onde W e um conjunto de rotulos, comumente numeros representando distancias oufluxos.

Exemplo 149 O grafo na figura 8.3 tem um rotulo colocado em cada aresta.

Page 170: MATEMÁTICA DISCRETA -Benedito Melo

170 CAPITULO 8. GRAFOS E ARVORES

Figura 8.3: um grafo rotulado

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

Definicao 54 (Grau de um vertice) O grau de um vertice e o numero 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 vi com graugi, para i = 1, 2, 3, ..., p. Entao,

p∑i=1

di = 2q

Prova: Tomando a soma dos graus dos vertices, cada laco contando duas vezes, pordefinicao, e toda outra aresta e contada duas vezes, uma vez so para cada vertice que elacontem. Portanto, a soma dos graus dos vertices de um grafo e duas vezes o numero dearestas.

Corolario 1 O numero de vertices de grau ımpar e par.

Matrizes e multiplicacao de matrizes

Para aqueles nao familiares com o assunto desta secao daremos uma descricao rapidade matrizes. As secoes seguintes exigem conhecimento de matrizes e multiplicacao dematrizes.

Definicao 55 Uma matriz A, m×k, e um vetor retangular de elementos tendo m linhase k colunas, como mostramos abaixo.

Page 171: MATEMÁTICA DISCRETA -Benedito Melo

8.2. GRAFOS 171

A =

a11 a12 ... a1k

a21 a22 ... a2k

... ... aij ...am1 am2 ... amk

Os elementos na i− esima linha e j-esima coluna e aij.

Um exemplo de uma matriz 3× 4 e:

A =

1 2 0 −10 3 4 22 2 −2 3

O elemento a23 e 4.um exemplo de uma matriz 3× 3 e:

A =

1 2 02 4 02 2 −2

Definicao 56 (Multiplicacao de matrizes) Se uma matriz A e m× k e outra B e k×n,entao o produto existe e e definido por uma matriz na qual o elemento na i-esima linhae j-esima coluna e:

ai1b1j + ai2b2j + ... + aikbkj =x=k∑x=1

aixbxj

Exemplo 150 Uma matriz 2 × 3 multiplicada por uma matriz 3 × 2 resultauma matriz 2× 2. Portanto:(

1 2 -10 3 2

)

1 20 32 2

=

(1× 1 + 2× 0 +−1× 2 1× 2 + 2× 3 +−1× 20× 1 + 3× 0 + 2× 2 0× 2 + 3× 3 + 2× 2

)

=

( −1 64 13

)

Observe que alterando a ordem da multiplicacao obterıamos um resultado di-ferente para as matrizes nesse exemplo. Para alguns outros pares de matrizespoderia nem ser possıvel a multiplicacao.

Exemplo 151

(1 23 4

)(0 12 -1

)=

(1× 0 + 2× 2 1× 1 + 2×−13× 0 + 4× 2 3× 1 + 4×−1

)

Page 172: MATEMÁTICA DISCRETA -Benedito Melo

172 CAPITULO 8. GRAFOS E ARVORES

=

(4 −18 −1

)

Exemplo 152 Dada a matriz

A =

0 1 11 0 11 1 0

Calcular A2, A3 e A4.

A2 = AA =

2 1 11 2 11 1 2

; A3 =

2 3 33 2 33 3 2

; A4 =

6 5 55 6 55 5 6

.

Descricao de um grafo

A representacao de um grafo por um desenho e util, se o numero de vertices e arestassao 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 armazenadano computador. Para a representacao dos vertices de um grafo uma lista e suficiente. A“matriz de adjacencia” e a “lista de adjacencia”, descrita abaixo, sao duas maneiras bemconhecidas de representar as arestas de um grafo.

Matriz de adjacencia. A matriz de adjacencia de um grafo simples G, com pvertices, e uma matriz p× p de 0‘s e 1‘s :

A =

a11 a12 ... a1p

a21 a22 ... a2p

... ... aij ...ap1 ap2 ... app

onde para todo i, j de 1 a p aij =

{1, se vi e adjacente a vj

0, se vi nao e adjacente a vj

Observe que, para cada ordem na qual os vertices sao considerados, havera uma matrizde adjacencia para um dado grafo.

Lista de adjacencia. Para cada vertice de um grafo, lista os vertices adjacentesa esse vertice. Isto e, para cada v em G definimos l(v) como sendo a lista de verticesadjacentes a v,

Exemplo 153 Dar a representacao da “matriz de adjacencia” da figura 8.4.

Page 173: MATEMÁTICA DISCRETA -Benedito Melo

8.2. GRAFOS 173

Figura 8.4: Um grafo

A =

0 1 1 0 11 0 0 1 01 0 0 0 00 1 0 0 11 0 0 1 0

A segunda linha, por exemplo, da matriz pretende mostrar que v2 e adjacentea v1 e v2 e adjacente a v4. As demais dao informacoes similares.

Exemplo 154 Dado, como uma tabela, a representacao de uma “lista deadjacencia” para o grafo na figura 8.4

1 2 3 4 52 1 1 2 13 4 5 45

A segunda coluna da tabela, por exemplo, pretende mostrar que v1 e adjacentea v2, v3 e v5. As outras colunas dao informacao similares.

A lista de vertices adjacentes a v1, v2, ... pode ser escrita explicitamente comouma lista. Por exemplo, l(v1) =< v2, v3, v5 >, ...

Passeio, caminho e outras coneccoes

Muitos problemas que podem ser modelados por grafos requerem consideracoes de modoque 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.

Definicao 57 (Passeio) Um passeio de comprimento n num grafo e uma sequencia devertices e arestas formadas por cada par sucessivos de vertices.

Num grafo simples, o passeio pode ser descrito listando somente os vertices, por exem-plo, v0v1...vn, onde se entende que o passeio contenha as arestas ligando os vertices su-cessivos.

W (v0, vn) = v0, e1, v1, e2, ..., en, vn, onde ei = {vi−1, vi}.

Page 174: MATEMÁTICA DISCRETA -Benedito Melo

174 CAPITULO 8. GRAFOS E ARVORES

Figura 8.5: Um grafo com 3-ciclo

O comprimento de um passeio e o numero de arestas que ele contem.Se n = 0 o passeio consiste de um unico vertice, v0, e nenhuma aresta. Neste caso,

ele e chamado um passeio de comprimento 0. Se v0 = vn o passeio diz-se fechado.

Definicao 58 (Caminho) Um passeio com vertices distintos e chamado um caminho.

Definicao 59 (Trilha) Um caminho com arestas distintas e chamado uma trilha.

Todo caminho e uma trilha. Mas, nem toda trilha e um caminho.

Definicao 60 (Circuito) Uma trilha fechada e chamado um circuito.

Um circuito nao e um caminho.

Definicao 61 (Ciclo) Um circuito com no mınimo uma aresta, e no qual o unico verticerepetido e vn = v0, e chamado um ciclo.

Um ciclo de comprimento n e chamado um n − ciclo. Um 1 − ciclo e um laco, um2 − ciclo consiste de um par de arestas multiplas. Para n ≥ 3, um n − ciclo pode serchamado um polıgono.

Exemplo 155 no grafo da figura 8.5:

1. W (v1, v5) = v1v2v3v5v4v3v5 e um passeio de comprimento 6.

2. W (v1, v1) = v1v3v1 e um passeio fechado de comprimento 2, nao umcircuito.

3. P (v1, v5) = v1v2v3v4v5 e um caminho de comprimento 4.

4. W (v1, v2) = v1v3v4v5v3v2 e uma trilha, mas nao um caminho.

5. W (v1, v1) = v1v2v3v4v5v3v1e um circuito, mas nao ciclo.

6. v1v4v3 nao e um passeio, pois {v1, v4} nao e uma aresta.

7. W (v1, v1) = v1v2v3v1 e um 3-ciclo.

Page 175: MATEMÁTICA DISCRETA -Benedito Melo

8.2. GRAFOS 175

Figura 8.6: Passeios de comprimento 2, de v2 a v5, na figura 8.4

8. Seja V = {v1, v2, v3} e E = {{v1, v2}, {v2, v3}, {v3, v1}}. Entao, o subgra-fo (V, E) contem seis ciclos como v1v2v3v1. O subgrafo esta associado auma classe de equivalencia de ciclos “tendo os mesmos vetices e arestas.”

A matriz de adjacencia oferece um metodo para a computacao do numerode passeios de um dado comprimento num grafo. Por exemplo, mostramos,abaixo, como calcular o numero de passeios de comprimento 2, num dadografo.

Exemplo 156 Achar e calcular o numero de todos os passeios de compri-mento 2, de v2 a v5, no grafo da figura 8.4.

Na figura 8.6, estao desenhados todos os passeios possıveis, de comprimento2, de v2 a v5, no grafo da 8.4. As arestas que existem podem ser representadaspor 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”, comona matriz de adjacencia.

Os passeios de comprimento 2 podem ser identificados multiplicando os rotulosnas arestas que formam passeios possıveis, para formar um rotulo de passeios.Portanto, v2v1v5 tem rotulo de caminho 1× 1 que e 1 e um caminho de com-primento de v2 a v5. Entretanto, v2v3v5 tem rotulo de caminho 0× 0 que e 0e este caminho possıvel nao existe no grafo da figura 8.4.

Em geral, sejam a, b os rotulos de arestas para vivj e vjvk, respectivamente.Se ab = 1, entao vivjvk e um passeio e se ab = 0, entao vivjvk nao e umpasseio.

O numero de todos os passeios possıveis de comprimento 2, de v2 a v5 podeser encontrado pelo calculo

1× 1 + 0× 0 + 0× 0 + 1× 1 + 0× 0

que gera dois caminhos de comprimento 2.

Page 176: MATEMÁTICA DISCRETA -Benedito Melo

176 CAPITULO 8. GRAFOS E ARVORES

Agora, o calculo acima e exatamente o mesmo que um calculo efetuado no processonormal de multiplicacao de matrizes. Para a matriz de adjacencia

A2 =

0 1 1 0 11 0 0 1 01 0 0 0 00 1 0 0 11 0 0 1 0

0 1 1 0 11 0 0 1 01 0 0 0 00 1 0 0 11 0 0 1 0

A linha 2, da matriz A, no lado esquerdo representa as arestas, a partir de v2, paracada um outro vertice, como podemos ver no lado esquerdo da figura 8.6. A coluna 5da matriz A na direita, representa as arestas de cada vertice a v5, como pode ser vistono lado direito da figura. A multiplicacao normal de matrizes gera o resultado da linha 2versus a coluna 5, na posicao da linha 2 e coluna 5 de A2, abaixo. Em geral, o numerode passeios, de comprimento 2 de vi a vj, e o numero na linha i e coluna j, de A2.

A2 =

3 0 0 2 00 2 1 0 20 1 1 0 12 0 0 2 00 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 as

ij, da matriz As conta o numero de passeios de comprimento s, de vi a vj,no grafo.

Exemplo 157 Achar o numero de passeios, de comprimento 4, de v1 a v3 nografo da figura 8.7.

Solucao: A matriz de adjacencia para este grafo e a matriz A do exemplo152. A entrada na linha 1 e coluna 3 de A4 e ‘5’. Pela proposicao 12, acima,existem cinco passeios de comprimento 4, de v1 a v3. Por exemplo, v1v3v2v1v3.

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 cadapar de vertices e chamado uma arvore. Portanto, uma arvore pode ser pensada comotao “eficiente” que ela tem bastante arestas para permitir a comunicacao entre cada parde vertices. Nesta secao, desenvolveremos os conceitos de grafo conexo, arvore e arvorebinaria.

Page 177: MATEMÁTICA DISCRETA -Benedito Melo

8.3. ARVORES 177

Figura 8.7: grafo para o exemplo

Figura 8.8: o grafo das pontes de Konigsberg

Grafos conexos

Definicao 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. G−{e} e o grafo obtido removendo e, do conjuntode arestas de G.

Definicao 63 (Ponte) Seja G um grafo conexo. Uma aresta e de G, diz-se uma pontese o grafo G− {e} nao for conexo.

Definicao 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 cadavertice, exatamente uma vez diz-se um circuito Euleriano.

Leonhard Euler(1707-1783) foi um matematico suico que resolveu um problema sobreum grafo em 1736. Sua solucao foi, provalmente, o primeiro exemplo, de uma abordagemde “teoria de grafos” por um matematico. O problema de Euler e chamado o problemadas pontes de Konigsberg. Ele consiste em determinar se o grafo geral, da figura 8.8, eum circuito Euleriano.

Euler argumentou que nenhum circuito seria possıvel, pois para que tal circuito exis-tisse, todo vertice deveria ser de grau par. Cada verice deve ser usado exatamente umavez, num circuito Euleriano e para percorrer o circuito cada aresta que entrar num verticedeve casar com um diferente que sai do vertice. Assim, o grau do vertice deve ser ummultiplo 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.

Page 178: MATEMÁTICA DISCRETA -Benedito Melo

178 CAPITULO 8. GRAFOS E ARVORES

Proposicao 13 (Euler) Se o grafo tiver um circuito Euleriano, entao cada vertice deveser de grau par. Isto e, uma condicao necessaria para um grafo possuir um circuitoEuleriano 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 doisvertices de grau ımpar ou nenhum vertice de grau ımpar.

Prova: Seja G tendo um passeio Euleriano iniciando no vertice a e terminanado novertice b.

Se a = b, entao a proposicao 13 se verifica e todos os vertices tem grau par.

Se a 6= b, construa um grafo G∪{e}, adicionando a aresta e = (a, b) a G. O novo grafotem um circuito Euleriano consistindo dos passeios de Euler de a a b, em G, juntamentecom 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 recıproca do teorema de Euler e verdadeira. Ela pode ser provadapor inducao matematica.

Proposicao 14 (Recıproca do teorema de Euler)

Se todos os vertices de um grafo finito conexo, tiver grau par, entao, este grafo possuium circuito Euleriano. Isto e, uma condicao suficiente para um grafo ter um circuitoEuleriano e que todo vertice seja de grau par.

Corolario 3 Um grafo finito, conexo que tem exatamente dois vertices de grau ımpardeve ter um passeio de Euler.

O algoritmo seguinte, para construir um passeio de Euler, ou circuito num grafo, edevido 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, sugeitosomente as seguintes regras:

1. remover as arestas enquanto elas forem sendo percorridas, e se qualquer vertice setornar 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.

Page 179: MATEMÁTICA DISCRETA -Benedito Melo

8.3. ARVORES 179

Entrada: Um grafo G.Precondicoes: V (G) e finito 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 entaoachar uma aresta {a, x} em G que nao seja uma ponteremover a aresta {a, x} de Gadicionar a aresta {a, x} a e o vertice x a Wcaso contrario(se o grau(a=1)(existe somente uma aresta {a,x} incidente com a)remover a aresta {a, x} e a de Gadicionar {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.)

Saıda: 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)

Definicao 65 (Caminho e ciclo Hamiltoniano) Um caminho hamiltoniano num grafosimples 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 suficiente para um circuito ser Eulerian e que cada verticetenha grau par. Nenhuma condicao como essa esta disponıvel para ciclo. Achar um cicloHamiltoniano num grafo e equivalente ao “problema do caixeiro viajante”(com arestasde pesos unitarios), como veremos no proximo capıtulo). Nao existe nenhum algoritmoeficiente para a sua solucao.

Definicao 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 capıtulo 7, definimos uma relacao de equivalencia como tendo tres propriedades.Ela deve ser reflexiva, simetrica e transitiva. Uma relacao de equivalencia sobre um con-junto S parciona-o em subconjuntos, chamados “classes de equivalencia”. Cada par deelementos numa dada classe de equivalencia satisfaz a relacao. Agora, definimos uma re-lacao chamada “conexa” sobre grafos e usamo-la para identificar as componentes conexasde um grafo.

Page 180: MATEMÁTICA DISCRETA -Benedito Melo

180 CAPITULO 8. GRAFOS E ARVORES

Proposicao 15 Seja ρ uma relacao definida sobre os vertices de um grafo simples, G.

xρy = “existe um caminho P (x, y)”

Entao, ρ e uma relacao de equivalencia no vertices de G.Prova:

1. ρ e reflexiva. Existe um caminho(de comprimento zero) P (x, x) para todo x.

Portanto, xρx.

2. ρ e simetrica. Se existe um caminho P (x, y), entao existe tambem um caminhoP (x, y).

Portanto, se xρy, entao yρx.

3. ρ e transitiva. Dados xρy e yρx 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 elepode 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. Chameeste vertice u. Deve existir um “a”, pois y pertence a P e Q, mesmo se nao existiroutro vertice.

Agora, a parte de P de x a u, conjuntamente com a parte de Q, de u a z constituium caminho de x a z.

Portanto, xρz.

Desse modo ρ e uma relacao de equivalencia.

Deduzimos da assertiva “ρ e uma relacao de equivalencia nos vertices de um grafo”, queela parciona os vertices de G em classes de equivalencia. Cada classe de equivalencia dosvertices “ligado por um caminho” forma um subgrafo conexo de G, com aqueles caminhos.Os subgrafos conexo(pela definicao 66).

Arvores

A seguir, comecando com as definicoes, iremos acrescentando propriedades de modo aobter uma arvore. Veremos seis definicoes diferentes de arvore, que apresentaemos comouma proposicao.

Definicao 67 (Arvore) Uma arvore e um grafo conexo sem cırculos.

Page 181: MATEMÁTICA DISCRETA -Benedito Melo

8.3. ARVORES 181

Proposicao 16 Seja uma arvore tendo p vertices e q arestas. Entao, p = q + 1.Prova: A prova e feita usando inducao matematica sobre p.Para p= 1 existe uma arvore. Ela tem um vertice e nenhuma aresta. Portanto, p = 1

e q = 0, que satisfaz o teorema.Suponha que a proposicao e verdadeira para todas as arvorres cujo numero de vertices

e menor que p. Seja T uma arvore qualquer com p vertices. Escolha uma aresta qualquere = {x, y} de T .

O grafo T−{e} nao e conexo. Porque se ele fosse conexo, haveria um caminho P (x, y)em T −{e} o qual junto com e daria um ciclo em T . Isto contradiz a definicao de arvore.

Portanto, e e uma ponte de T e T − {e} tem duas componentes. Cada uma dascomponentes e uma arvore com menos que p vertices. Pela hipotese indutiva o resultadose verifica para cada componente.

Seja uma componente com q1 arestas e outra com q2. Entao,

p = (q1 + 1) + (q2 + 1) = q1 + q2 + 1) + 1 = q + 1

recordando que T tem uma aresta extra e.Logo, por inducao matematica a proposicao e verdadeira para todos os inteiros p ≥ 1.

Proposicao 17 Se x e y sao vertices distintos numa arvore T , entao existe exatamenteum caminho P (x, y).

Prova: Por definicao, T e conexo. Portanto, para todo vertice x, y deve existir umcaminho P (x, y). Mas nao pode existir um segundo caminho Q(x, y), pois se houvesseesse outro caminho poderıamos construir um ciclo de P a Q.

A inversa desta proposicao tambem e verdadeira. Neste ponto, juntaremos as proprie-dades de arvores numa proposicao, que inclui as duas proposicoes acima.

Proposicao 18 (Arvores) Se qualquer um dos seguintes fatos for verdadeiro para umgrafo T , com n vertices, entao todos as assertivas abaixo sao verdadeiras.

1. T e uma arvore.

2. T nao contem nenhum ciclo e tem n− 1 arestas.

3. T e conexo e tem n− 1 arestas.

4. T e conexo e toda aresta e uma ponte.

5. Todo par de vertices em T e conectado por exatamente um caminho.

6. T nao contem ciclos, mas a adicao de uma nova aresta(com nenhum novo vertice)cria um ciclo.

Page 182: MATEMÁTICA DISCRETA -Benedito Melo

182 CAPITULO 8. GRAFOS E ARVORES

O ponto da proposicao 18 e que qualquer uma das assertivas de 2 a 6 poderia substituira definicao 67, como uma definicao 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 todasas outras, e, assim a proposicao fica provada.

Prova: A proposicao e verdadeira para n = 1. Considere n ≥ 2.

1 −→ 2. Isto segue da definicao 67 e a proposicao 16.

2 −→ 3. Suponha que T e desconexo. Obtenha uma contradicao da proposicao16.

3 −→ 4. A remocao de qualquer aresta resulta num grafo com n vertices e n−2arestas. 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 umcaminho. Mas, nenhum par de vertices esta conectado por dois caminhos, poisesses caminhos produziria um ciclo. A adicao de uma nova aresta entre osvertices 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 verticenuma componente e o outro vertice numa componente diferente. Nenhum cicloe criado, e isso contradiz a proposicao.

Arvores binarias

Qualquer vertice de uma arvore pode ser escolhido como um vertice raız. Mas, perderemosesta flexibildade se pedirmos que o grafo seja dirigido. Poderemos restringir uma arvoredirigida limitando o numero de arestas “deixando” cada vertice. A mais simples de taisestruturas e uma arvore binaria dirigida no qual nenhum mais que duas arestas pode deixarcada 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 raız.

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, juntamentecom o subconjunto dos vertices de t, que forma uma arvore. Cada vertice de uma ABDOt e a raız de uma subarvore de t. Este fato sugere uma definicao recursiva.

Definicao 68 (ABDO) Uma arvore binaria, dirigida e ordenada, t, e definida recursi-vamente por

t = nula ∨ (x, y, z)

Page 183: MATEMÁTICA DISCRETA -Benedito Melo

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 umatripla ordenada.

x e a subarvore a esquerda”;y e a raız de t; ez e a subarvore a direita.

O segundo elemento, y, da tripla ordenada, chamada a raız da arvore, pode ser usadapara armazenar “informacao”. Uma tarefa possıvel e pesquisar uma arvore pela infor-macao armazenada nela.

Exemplo 158 Mostre que o grafo armazenado na figura 8.9 satisfaz a defi-nicao 68 de uma ABDO.

Solucao: O grafo desenhado na figura 8.9 e uma ABDO se ela for nula ou(v2, v1, v3v4v5) for uma arvore.

Se o grafo for nao nulo, devemos investigar a tipla ordenada. A tripla e umaABDO, se v2 e uma ABDO(uma subarvore a esquerda) e v1 e a raız(isto porqueele e um vertice no segudo lugar na tripla), e se (v3, v4, v5) e uma ABDO(umasubarvore a direita).

v2 e uma ABDO se(nula, v2, nula) e uma ABDO, o que acontece.

(v3, v4, v5) e um a ABDO se:

1. v3 e uma ABDO(isto acontece porque (nula, v3, nula) e uma ABDO);

2. v4 e a raız( o que acontece);

3. v5 e uma ABDO( o que e verdade porque (nula, v5, nula) e uma ABDO).

Portanto, o grafo desenhado na figura 8.9 e uma ABDO.

Para ajudar a extrair informacoes, definimos a seguinte funcao parcial sobre umaarvore t. A arvore nao esta definida para a arvore nula.

Caso contrario:

Page 184: MATEMÁTICA DISCRETA -Benedito Melo

184 CAPITULO 8. GRAFOS E ARVORES

esquerda(x) = x, a subarvore a esquerda de tinfo(t) = a informacao em y, a raız de tdireita(t) = z, a subarvore a direita de t.

Existem varias maneiras pelas quais poderemos extrair informacao armazenada novertice de uma ABDO. A seguinte funcao definida recursivamente recebe como entradauma ABDO, t, com informacao mantida em cada um de seus vertices e devolve comosaıda a informacao como uma lista.

Seja “listaDeArv” o nome da funcao, o conjunto das ABDO, “T e o conjunto daslistas de informacao “L”. Entao:

listaDeArv : T−→ L

istaDeArv(t) = <>, se t = nula

listaDeArv(esquerdA(T )))colocar < info(t) >

colocar listaDeArv(direita(t))

se t 6= nula

Exemplo 159 Aplicar listaDeArvo a ABDO de informacao desenhada nafigura 8.9. A informacao armazenada na arvore e ‘r’, ‘p’, ‘i’, ‘z’, ‘e’ localizadanos vertices v1, v2, v3, v4, v5, respectivamente.

A saıda e:

listaDeArv(v2)= <> || < p > || <>

colocar < r >

colocar listaDeArv(v3, v4, v5)

(i.e., <> || < i > || <> || < z > || < e > |||| <>)

Efetuando o colocar obtemos < p, r, i, z, e >.

A funcao listaDeArv pode ser escrita como um algoritmo cujo proposito seja extrair ainformacao extraıda dos vertices de uma ABDO.

Algoritmo(Arvore de informacao binaria) Para obter uma lista da infor-macao armazenada numa ABDO.

Entrada: t, uma arvorePrecondicoes: t satisfaz a definicao 68

Metodo: listaDeArv(t)Saıda: l, uma listaPoscondicoes: a lista l contem a informa de cada vertice de t, em alguma ordem

Page 185: MATEMÁTICA DISCRETA -Benedito Melo

8.4. ARVORES GERADORAS 185

8.4 Arvores geradoras

Nesta secao, analisaremos uma especie particular de arvore, chamada arvoregeradora. As arvores geradoras sao importantes porque elas tem o numeromınimo de arestas, enquanto permanece conexa.

Definicao 69 (Arvore geradora) Um subgrafo de um grafo conexo, G, diz-seuma arvore geradora se e somente se ele e uma arvore que tem o mesmoconjunto de vertices que G.

Algoritmo(Arvore geradora) Para construir uma arvore geradora a partirde um grafo simples finito G, se ele existir.

Entrada: G e um grafo simples com n vertices.Precondicoes: nenhumaMetodo: Escolha qualquer vertice u0 em G como o primeiro vertice de T .

Enquanto existir uma aresta em G incidente com um vertice, u, emT e um vertice, v, nao em T :

adicione esta aresta {u, v} a Tadicione v a T ,

Se T contem n vertices, entao T e uma arvoe geradora para G.Se T contem menos que n vertices, entao G nao e conexo.

Saıda: T , uma arvore.Poscondicoes: V (T ) = V (G) ou G nao e conexo.

Isto e, T tem os mesmos vertices que o grafo de entrada G ee uma arvore geradora se G for conexo.

Prova:

Inicialmente, T tem um vertice. Para cada passo no “laco enquan-to”, sao acrescentados a T uma aresta e um vertice. Desse modo,no fim de um passo pelo “laco enquanto” o numero de vertices eum a mais que o numero de arestas.

Tambem T e conexo.

Portanto, pela proposicao 18, T e uma arvore apos cada passo pelo“laco enquanto”, incluindo o ultimo.

Se T tem n vertices, entao ele tem todos os vertices de G e e umaarvore geradora de G.

Se T tem menos que n vertices, quando o algoritmo terminar, deveexistir no mınimo um vertice em G, mas nao em T . Seja s um detais vertices.

Page 186: MATEMÁTICA DISCRETA -Benedito Melo

186 CAPITULO 8. GRAFOS E ARVORES

Suponha que G e conexo. (Veremos que isto leva a uma contradicao.)Entao, existe um caminho P (u0, s) em G. Seja s0, s1, ..., sk os verticesdesse caminho, onde s0 = u0 e sk = s.

Agora, k ≥ 1, pois u0 6= s. Seja si o primeiro vertice nao em T . (Deveexistir tal vertice pois sk sera ele, se nao existir outro.) E i ≥ 1, poisu0 ∈ T . Agora, {si−1, si} e uma aresta que liga um vertice em T .

Mas, o algoritmo termina porque nao existe nenhuma aresta comotal, em T , assim G deve nao ser conexo.

Arvore de busca

As arvores geradoras tem a propriedade util de que existe um unico caminhoentre cada dois vertices. Entretanto, embora o algoritmo da arvore geradoraproduza efecientemente uma arvore geradora, nao existe maneira de achar umcaminho entre um par arbitrario de vertices sem uma pesquisa que consumamuito tempo.

A dificuldade pode ser evitada da seguinte maneira. Chame o vertice ini-cial, u0, no algoritmo da arvore geradora, de vertice raız. Considere a etapano algoritmo que adiciona a aresta {u, v} a arvore T , onde u ∈ T e v /∈ T . Overtice u pode ser pensado como o “predecessor” ou “pai” do vertice v ∈ T .Por isto escreveremos

pr(v) = u

Cada vertice, exceto o vertice raız tem um pai em T . Por completudedefinamos um “vertice vazio”, ∅. A funcao pr e, agora, definida sobre todos osvertices de T . A funcao e representada sobre um diagrama por “ponteiros”ou setas como na figura 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 raız e a.A funcao pai ou ponteiro pode ser aplicada sucessivamente aos vertices

para chegar no vertice raız, por exemplo, na figura 8.10:

pr2(f) = pr ◦ pr(f) = pr(b),o vertice da raız

Definicao 70 (Nıvel ou profundidade) Se prk(v) = r, onde r e o vertice daraız, entao o vertice v diz-se esta no nıvel(ou profundidade) k. Escreveremosnıvel(v) = k e definimos nıvel(r) como sendo 0.

Page 187: MATEMÁTICA DISCRETA -Benedito Melo

8.4. ARVORES GERADORAS 187

Figura 8.10: A funcao “pai”

O caminho entre dois vertices m,n pode, agora, ser encontrado fazendo umabusca aos “pai”, “avos”, etc., de m,n ate que seja encontrado um ancestralcomum.

Uma arvore geradora, com a estrutura adicional dada pela funcao “pai”, echamada 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 osvertices forem dados. O algoritmo faz uso de uma estrutura chamada fila.Uma fila e uma lista de objetos esperando para serem processados, de algumamaneira. A regra com a qual os objetos sao escolhidos para serem removidos eprocessados e chamada a prioridade da fila. No algortimo que segue a priori-dade e “first in”, first out”(FIFO), isto e, o “primeiro a entrar” e o “primeiroa sair”.

Algoritmo(Arvore de busca primeiro em largura). Para construir umaarvore de busca com primeiro em largura, de um grafo finito conexo sim-ples.

Page 188: MATEMÁTICA DISCRETA -Benedito Melo

188 CAPITULO 8. GRAFOS E ARVORES

Entrada: Um grafo simples G.Precondicoes: Que G seja conexo.Metodo: Seja a arvore T de vertice a arvore vazia. (T ← nula)

Escolha um vertice raız u0, e acrescente ele a T .pr(u0)← ∅(“o vertice vazio”).Seja a fila de vertices como sendo < u0 >.Enquanto a fila nao estiver vazia:

chame o vertice na cabeca da fila, ‘v’.para vada vertice w que for adjacente a v em G enao em T

adicione {v, w} a T .coloque w na fila de verticespr(w)← v

remova v da fila(ela diz-se “dada”).Saıda: 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 ee uma arvore geradora para G.

Prova: O algoritmo da arvore de busca primeiro em largura e, simplesmen-te, um refinamento do algoritmo da arvore geradora, nos quais os vertices saoescolhidos de maneira particular e e acrescentada uma funcao ponteiro. Por-tanto, se G for conexo, o algoritmo da largura primeiro encontra uma arvorede busca com raız u0 para G.

Exemplo 160 Construir uma arvore de busca primeiro em largurado grafo G, dado a a seguinte tabela da lista de adjacencia.

0 1 2 3 41 0 0 1 12 2 1

34

Solucao: Escolha ‘0’ como sendo vertice raız. A seguinte tabelamostra o crescimento da arvore.

Page 189: MATEMÁTICA DISCRETA -Benedito Melo

8.4. ARVORES GERADORAS 189

Figura 8.11: Uma arvore de busca em largura primeiro de G

T fila funcao pai0(raız) < 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 figura 8.11 mostra a arvore de busca primeiroem largura G, contruıda, acima. A “profundidade” ou “nıvel” dequalquer vertice numa arvore de busca pode ser recuperado usandoa funcao pai(ponteiro). Por exemplo, o nıvel do vertice 3 e obtidoobservando pr(3) = 1; pr(1) = 0(a raız) e, portanto, pr2(3) = 0. Overtice 3 e de nıvel 2.

Uma outra abordagem para construir uma arvore de busca e construindocaminhos tao longos quanto possıveis, buscando os nıveis mais profundos dografo, a partir da raız. Quando se tornar impossıvel estender a arvore mais“para baixo” da raız, retornamos um nıvel para o vertice anterior e tentamosir descer no grafo, por um novo caminho. O algoritmo termina quando cadavertice tiver sido visitado. O seguinte algoritmo para construir a arvore debusca primeiro em profundidade usa uma fila com uma prioridade diferentedaquela do algoritmo anterior. A prioridade da fila e “last in, first out”(LIFO),isto e, o ultimo a entrar e o primeiro a sair. Cada chega e colocado na cabecada fila.

Algoritmo(Arvore de busca primeiro em profundidade). Para construiruma arvore de busca primeiro em profundidade, de um grafo finito conexosimples.

Page 190: MATEMÁTICA DISCRETA -Benedito Melo

190 CAPITULO 8. GRAFOS E ARVORES

Entrada: Um grafo simples G.Precondicoes: Que G seja conexo.Metodo: Seja a arvore T de vertice a arvore vazia. (T ← nula)

Escolha um vertice raız u0, e acrescente ele a T .pr(u0)← ∅(“o vertice vazio”).Seja a fila de vertices como sendo < u0 >.Enquanto ((a fila nao estiver vazia) e (V (T ) 6= v(G)):

chame o vertice na cabeca da fila, ‘v’.se o vertice w for adjacente a v em G e nao em T

entao adicione {w, v} a Tadicione w a Tcoloque w na cabeca da filapr(w)← v

caso contrario remova v da fila.Saıda: 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 ee uma arvore geradora para G.

Prova: O algoritmo anterior e tambem, simplesmente, um refinamento doalgoritmo da arvore geradora, na qual e acrescentado um ponteiro. Portanto,se G for conexo, o algoritmo da profundidade primeiro encontra uma arvorede busca com raız u0, para G.

Exemplo 161 Para construir uma arvore de busca em profundi-dade primeiro do grafo G, dado a a seguinte tabela da lista deadjacencia.

0 1 2 3 41 0 1 1 04 2 3 2

3

Solucao: A aplicacao do algoritmo anterior a G, esta apresentadoa seguir.

Page 191: MATEMÁTICA DISCRETA -Benedito Melo

8.4. ARVORES GERADORAS 191

Figura 8.12: Arvore de busca em profundidade

T fila pai0 < 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 debusca esta desenhada na figura 8.12.

Arvore geradora de peso mınimo

Dado um campo de gas natural, com pocos e uma plataforma de tratamen-to/bombeamento, pede-se para que os tubos sejam colocados de tal maneiraque cada poco seja conectado a plataforma a um custo total mınimo. Co-mo cada poco esta conectado a plataforma, o sistema e conexo. Por questaode economia nao deve existir nenhum ciclo. O problema pode ser modeladocomo um grafo, tomando os pocos e a plataforma como vertices e as tubu-lacoes possıveis como arestas, cada uma rotulada com seu custo de construcao.Entao, o problema e achar a arvore geradora para o grafo, com custo totalmınimo.

Problema(Arvore geradora mınima) Como poderemos encontrar uma arvoregeradora para um grafo, rotulado pelas arestas para minimizar a soma dosrotulos(pesos) na arestas da arvore?

Algoritmo(Kruskal) Para construir uma arvore geradora rotulada pelasarestas de custo total mınimo, para o grafo conexo G.

Page 192: MATEMÁTICA DISCRETA -Benedito Melo

192 CAPITULO 8. GRAFOS E ARVORES

Figura 8.13: Um grafo com pesos nas arestas

Entrada: um grafo G, com arestas e1, e2, ..., em

n vertices e com pesos nas arestas w(e1), ..., w(em).Precondicoes: Que V (G) seja finito e G conexo.Metodo: Ordenar as arrestas de G de tal modo que

w(e1) ≤ w(e2) ≤ ... ≤ w(em).Faca T como sendo e1, juntamente com seus vertices.Enquanto o numero 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 .

Saıda: Uma arvore T .Poscondicoes: T e uma arvore com a soma mınima de

arestas com pesos e V (T ) = V (G).

Exemplo 162 Achar uma arvore geradora, com pesos, mınima pa-ra o grafo da figura 8.13.

Solucao: Comparar os pesos para as arestas de G:

1 ≤ 2 = w(v2, v3) ≤ 2 = w(v6, v7) ≤ 4 ≤ 5 ≤ 6 ≤ 7

≤ 8 = w(v1, v2) ≤ 8 = w(v5, v6).

Onde as arestas tendo pesos iguais a escolha da primeira aresta earbitraria. A arvore geradora contem as arestas {v2, v5}, {v2, v3}, {v6, v7}, {v1, v4}, {v2, v4},nao {v3, v5}, nao {v4, v5}, nao {v1, v2}, nao {v5, v6}.O algoritmo para porque seis arestas foram colocadas na arvore.

Na aplicacao, acima, do algoritmo da busca em profundidade, os circuitosforam identificados visualmente, do desenho. O algoritmo precisaria ser re-finado, para permitir a identificacao automatica de circuitos, antes de usa-loem problemas grande.

Page 193: MATEMÁTICA DISCRETA -Benedito Melo

8.5. EXERCICIOS 193

8.5 Exercıcios

1. Os vertices adjacentes a cada um dos vertices 1, 2, 3, 4, 5 e 6 num grafoG, sao listados na seguinte tabela:

3 4 1 2 1 25 6 5 5 3 3

6 4

(a) E possıvel achar um passeio de Euler para G?

(b) Construir uma arvore de busca em largura primeiro para G, a partirdos 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 partirdo vertice 1.

2. Os vertices adjacentes a cada um dos vertices 1, 2, 3, 4, 5 e 6 num grafG, estao listados na seguinte tabela:

2 1 5 1 2 14 5 3 26 6 6 5

(a) E possıvel achar um passeio de Euler para G? Se for o caso, escreve-lo.

(b) E possıvel achar um caminho Hamiltoniano para G? Se for o caso,escreve-lo.

(c) Construir uma arvore de busca em largura primeiro a partir dovertice v4. Achar o vertice ou vertices mais distantes do verticev4.

(d) Achar uma arvore de busca em profundidade primeiro a partir de v4.

3. A matriz de adjacencia para um grafo G, com vertices v1, ..., v6 e:

A =

0 0 1 0 1 10 0 0 1 0 11 0 0 1 1 10 1 1 0 0 11 0 1 0 0 01 1 1 1 0 0

(a) Achar o passeio de Euler de G.

Page 194: MATEMÁTICA DISCRETA -Benedito Melo

194 CAPITULO 8. GRAFOS E ARVORES

(b) Construir um arvore de caminhos mais curtos de v4.

(c) Achar o vertice, ou vertices, mais distantes do vertice v4.

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 umtesouro. Existe um barco que carrega duas pessoas. Este barco pode serdirigido por uma unica pessoa. O rio esta infestado de crocodilhos. Seo numero de piratas superar o numero de marinheiros eles os jogarao norio, caso contrario os marinheiros estarao salvos. Modelar o problemacom um grafo e apresentar uma sequencia de movimentos para transferirsalvas, para o outro lados, as seis pessoas.

5. Desenhar os grafos correspondentes as matrizes de adjacencia:

A =

0 1 1 01 0 0 11 0 0 10 1 1 1

B =

0 1 0 1 01 0 1 0 11 1 0 1 01 0 1 0 10 1 0 1 0

Calcular A2, B2 e interpretar a informacao que eles dao sobre os passeiosnos grafos.

Page 195: MATEMÁTICA DISCRETA -Benedito Melo

Capıtulo 9

Contar

O calculo da complexidade de tempo de um algoritmo requer a contagem donumero de vezes que alguma etapa basica ou operacao e repetida. O calculode uma probabilidade teorica, usualmente, requer contar o numero de ele-mentos num subconjunto. Contar, tambem, e importante por razoes menosdireta. Por exemplo, contar as etapas de um algoritmo nos da entendimentoda estrutura do algoritmo. Ao contar procuramos identificar ou impor algu-ma estrutura sobre o conjunto dos objetos que estao sendo contados. Nestecapıtulo, examinaremos o processo de contar e aprenderemos a usar tecnicasque simplificam a contagem. O capıtulo conclui com algoritmos para a geracaode arranjos de um conjunto de objetos e para a geracao de subconjuntos deum conjunto.

A maioria das pessoas pensam da contagem como sua primeira experienciaem matematica. A habilidade de contar e vista como um “habilidade basica”,apesar de nao ser facil definir contar satisfatoriamente. Recitar os numeros,“um, dois, tres, ...,” nao e, por si so, contar, nem mesmo necessario paracontar, desde que uma pessoa usando uma linguagem diferente usaria nomesdiferentes.

Num nıvel mais profundo, a descoberta do paradoxo reflexivo(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 damatematica. A abordagem construtiva comeca com a aritmetica “recursiva”.E esta abordagem que parece oferecer o maximo a computacao.

195

Page 196: MATEMÁTICA DISCRETA -Benedito Melo

196 CAPITULO 9. CONTAR

9.1 Tecnicas de contar

Numeros e contar

Um numero natural, x, neste esquema construtivo, e definido por;

x e um numero, se e somente se, ele for “0” ou “o sucessor de umnumero”.

Nos e pedido para aceitar que “0” e um numero, e se x e um numero, entaoseu “sucessor” (x)

′= x + 1 tambem e um numero. Os numeros inteiros sao,

entao, definidos, construtivamente, isto e, por um algoritmo, pela sequencia:

0, sucessor(0), sucessor(sucessor(0)), ..

Os nomes dos numeros dependem do esquema de traducao. Por exemplo,podemos traduzir a sequencia para:

0,1,2,3,...

Ou 0,1,10,...(binario) ou null, ein,zwei,...

Nos foi pedido para aceitar muito pouco. Mesmo com a inclusao das ope-racoes aritmeticas, tambem definidas recursivamente, todos os processos daaritmetica classica podem ser desenvolvidos.

Para a contagem comecar e necessario que os objetos a serem incluıdos nacontagem sejam identificados sem ambiguidade(uma possilibilidade e identifi-car os objetos a serem excluıdos da contagem). Portanto, os objetos a seremcontados constitui um conjunto.

As tecnicas de contar foram desenvolvidas para a estrutura particular im-posta no conjunto e, portanto, pode ser classificada por essa estrutura. Deve-se observar que a definicao de numero produz os numeros naturais e que oprocesso de contar so pode ser aplicado a conjuntos finitos.

Contar pelo sucessor

O metodo de contar pelo sucessor assume nada sobre a estrutura do conjuntoque vai ser contado.

Seja A o conjunto a ser contado. O numero de elementos em A e escritopor n(A) ou |A|. Contar o numero de elementos num conjunto A e definidorecursivamente por:

Page 197: MATEMÁTICA DISCRETA -Benedito Melo

9.1. TECNICAS DE CONTAR 197

contador← 0enquanto condicao

acao 1acao 2contador←contador + 1

Figura 9.1: Um fragmento de algoritmo.

n(A) =

{0 se A = ∅n(A− {l}) + 1 se A 6= ∅

onde l e um elementos de A.

A expressao “n(A−{l})+1” e exatamente a funcao sucessor, com a qual defi-nimos numero na secao anterior, e definida para 0 e todos os outros naturais.A afirmativa n(∅) = 0 declara que o numero de elementos no conjunto vazio ezero, uma assertiva muito razoavel.

Definir “contar” como uma funcao(de conjuntos para numeros) e equiva-lente a fornecer um algoritmo para contar os elementos de um conjunto. Essealgoritmo e ilustrado informalmente no exemplo a seguir.

Exemplo 163 Contar o numero no conjunto A = {a, b, c}.

n(A) = n({a, b}) + 1= (n({a}) + 1) + 1= ((n(∅) + 1) + 1) + 1= ((0 + 1) + 1) + 1

O processo de contar e completo. Para representar um numerocomo um numeral, e preciso uma rotina de traducao. Em Portu-gues isto pode ser dado por “tres”, em Ingles por “three” ou numlaboratorio de computacao por 11(binario).

Exemplo 164 No algoritmo da figura 9.1 a variavel contador contao numero de vezes que o algoritmo passa pelo laco “enquanto”.

O numero produzido por contador quando o algoritmo for executa-do, reflete fielmente a definicao de numero dado acima.

Page 198: MATEMÁTICA DISCRETA -Benedito Melo

198 CAPITULO 9. CONTAR

Contando os membros de uma sequencia

Suponha que os elementos do conjunto A, a ser contado, forma uma sequencia.Entao, deve ser possıvel achar uma funcao injetiva que mapeando o conjuntoA sobre o conjunto {1, 2, 3, ..., n}. Neste caso, o numero de elementos em A e n.

Exemplo 165 Sejam m,n inteiros, com m ≤ n. Quantos inteirosexistem de m a n, incluindo n?

Solucao: A questao e para que contemos os membros da sequenciam,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 numero de inteiros na sequencia original e n−m + 1.

Exemplo 166 Quantos numeros de dois dıgitos sao multipols de 4?

Solucao: O conjunto de dois dıgitos podem ser arranjados como asequencia

s =< 10, 11, 12, ..., 99 >

A funcao “dividir por 4” mapea a sequencia um a um sobre

S′=< 2, 5; 2, 75; ...; 24, 75 >

Os multipos de 4 na sequencia S corresponde, um a um, aos intei-ros em S

′. Definamos “o conjunto dos inteiros em S

′como sendo

S′′, onde

S′′

=< 3, 4, ..., 24 >

O conjunto S′′

e mapeado, pela funcao “subtrair 2” no conjunto

{1, 2, 3, ..., 22}

Portanto, existem 22 numeros, com dois dıgitos, multiplos de 4.

Page 199: MATEMÁTICA DISCRETA -Benedito Melo

9.1. TECNICAS DE CONTAR 199

Exemplo 167 Contar o numero de elementos no conjunto

A = {93, 95, ..., 855}

consistindo de todos os numeros ımpares de 93 a 855, inclusive.

Solucao: A funcao “subtrair 91” mapea A, um a um, sobre

A′= {2, 4, 6, ..., 764}

A funcao “dividir por 2” mapea A′, um a um, sobre

A′′

= {1, 2, 3, ..., 382}

Consequentemente, existem 382 numeros em A.

Contar produtos cartesianos

Proposicao 19 O numero de elementos no produto cartesiano A×B e n(A)×n(B).

Esta proposicao e referida, frequentemente, pela “regra do produto”. Elapode ser estendida para qualquer numero de conjuntos, usando uma provapor inducao matematica.

A prova da proposicao 19 pode ser baseada na introducao de uma va-riavel, contador, no algoritmo para construir os pares ordenados (a, b) deA×B.

contador← 0para i = 1 ate n(A)

para j = 1 ate m(B)imprimir (ai, bi)contador← contador + 1

Para cada um das n(A) escolhas para ai, o par (ai, ) sera completado porn(B) escolhas de bj, para constituir o par (ai, bj). No fim do processo teraosido construıdos n(A)× n(B) pares.

Page 200: MATEMÁTICA DISCRETA -Benedito Melo

200 CAPITULO 9. CONTAR

Exemplo 168 Quantas sequencias binarias distintas de 8 dıgitossao possıveis?

Solucao: Cada dıgito 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 28 deles. Portanto, saopossıveis 256 sequencias binarias de oito dıgitos.

Contando subconjuntos

A tecnica de contar descrita nesta secao depende de alguma estrutura desubconjunto a ser dado ao conjunto que pretendemos contar. As tecnicas decontagem sao aplicacoes das seguintes proposicoes.

Proposicao 20 Suponhamos que o conjunto A esteja parcionado em celulasA1, A2, ..., An. Entao,

n(A) = n(A1) + n(A2) + ... + n(An)

Este teorema, as vezes, e chamado a “regra da adicao”. Ele pode serprovado 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 umcolorario da proposicao 20.

Proposicao 22 (Inclusao/Exclusao) Sejam A, B e C conjuntos finitos. Entao,

n(A ∪B) = n(A) + n(B) − n(A ∩B)

Page 201: MATEMÁTICA DISCRETA -Benedito Melo

9.1. TECNICAS DE CONTAR 201

e

n(A ∪B ∪ C) = n(A) + n(B) + n(C) − n(B ∩ C) − n(C ∩ A)−n(A ∩B) + n(A ∩B ∩ C)

Esta proposicao, chamada “inclusao/exclusao”, pode ser generalizada paraqualquer numero de conjuntos. A prova e por inducao matematica, sobre onumero de subconjuntos.

Exemplo 169 Quantos inteiros de 1 a 100 tem um “7” na sua re-presentacao decimal?

Solucao 1: Parcionemos A em celulas Ai, onde,

Ai e o conjunto dos numeros de 10i a 10i+9, que contem um dıgito7.

Portanto, A0 = {7}, A1 = {17}, ..., A7 = {70, 71, ..., 79}, ...A9 = {97}.

e n(A) = 1 + 1 + 1 + 1 + 1 + 1 + 1 + 10 + 1 + 1 = 19

A solucao 1 impoe uma particao no conjunto e utiliza a proposicao20.

Solucao 2: Vamos escolher o conjunto universal como sendo, U ={1, 2, ..., 100}.Agora, U esta em correspondencia um a um com {00, 01, 02, ..., 99},o conjunto de todos os pares de dıgitos. A correspondencia e obviaexceto, talvez, a correspondencia entre 00 e 100.

n(U) = 10× 10 = 100n(A

′) = 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 numeros comdois dıgitos contem 7. Seja Y o subconjunto de A no qual osnumeros com um dıgito e 7.

Page 202: MATEMÁTICA DISCRETA -Benedito Melo

202 CAPITULO 9. CONTAR

Entao, X ∩Y e o conjunto no qual, ambos, os dıgitos 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 princıpio da casa de pombos(The pigeonhole principle)

O princıpio da casa de pombos e aqui apresentado em duas versoes.

Proposicao 23 (Princıpio da casa de pombos) Se mais do que n pombos saocolocadas em n caixas, no mınimo uma caixa contem dois ou mais pombos.

A prova e por contradicao.

Exemplo 170 Dados quatro inteiros, mostrar que no mınimo doisdeles tem o mesmo resto quando divididos por 3.

Solucao: Os restos possıveis quando dividimos por tres sao 0, 1 e2. Rotulemos tres caixas “0”, “1” e “2”. Coloquemos os quatrointeiros nas tres caixas. Entao uma das caixas deve ter no mınimodois inteiros. Isto e, no mınimo dois inteiros tem o mesmo restoquando dividido por tres.

Exemplo 171 Dados tres inteiros, mostrar que deve existir doiscuja soma e par.

Solucao: Cada inteiro e par ou ımpar. Apliquemos o princıpio dacasa de pombos, com n = 2, as caixas rotuladas “par” e “ımpar” etres “pombos” correspondendo a tres inteiros. Entao, no mınimodois inteiros sao pares ou, no mınimo dois inteiros sao ımpares.Em cada caso, existem dois inteiros cuja soma e par.

Uma visao mais geral do princıpio da casa de pombos estende a ideia decontar, usando uma funcao um a um, como vimos acima.

Page 203: MATEMÁTICA DISCRETA -Benedito Melo

9.1. TECNICAS DE CONTAR 203

Proposicao 24 (Princıpio da casa de pombos 2) Seja f uma funcao comdomınio S e contradomınio T , e sejam S e T conjuntos finitos. Se paraalgum inteiro k,

n(S)

n(T )> k

Entao, para algum t ∈ T , mais que k elementos de S sao mapeados em tpela funcao f.

Novamente a prova e por contradicao.

Exemplo 172 Seja f : S −→ T uma funcao do conjunto S noconjunto T . Seja n(S) = 7 e n(T ) = 3. Entao, um dos t1, t2 e t3 e aimagem de no mınimo tres membros do conjunto {s1, s2, ..., s7}.Pois, suponhamos que nenhum dos t1, t2 e t3 foi a imagem de maisque dois membros de S. Entao, S nao poderia ter mais que 2×3 = 6elementos.

Contradicao: O princıpio da casa de pombos 2 se aplica a esseexemplo.

Exemplo 173 Os numeros 1,2,3,...,10 sao colocados ao redor deum cırculo numa ordem aleatoria. Entao, a soma de no mınimoum conjunto de tres numeros consecutivos e no mınimo 17.

Solucao: Seja a sequencia de numeros em torno do cırculo

a1, a2, ..., a10

e seja as somas dos conjuntos de tres numeros consecutivos

t1, t2, ..., t10.

A soma dos primeiros dez numeros e 55. A seguinte tabela mostraas somas de cima para baixo.

Somaa1 a2 ... a10 55a2 a3 ... a1 55a3 a4 ... a2 55t1 t2 ... t10 165

Page 204: MATEMÁTICA DISCRETA -Benedito Melo

204 CAPITULO 9. CONTAR

Agora, vamos construir uma funcao de um conjuunto S de 165objetos para as “dez somas de tres numeros” t1, ..., t10, formandoT .

n(S)

n(T )=

165

10> 16

Portanto, pela proposicao 24, o princıpio da casa de pombos,existe no mınimo um total de tres numeros sucessivos, ti, que eno mınimo 17.

O raciocınio combinatorio

A arte do raciocınio combinatorio e encontrar uma correspondencia entre umproblema de contar que estamos tentando resolver e um problema de contarpara o qual conhecemos a resposta. Em muitos casos, a estrutura que esta-mos procurando pode ser encontrada reformulando o problema, usando novaspalavras. De fato, o argumento combinatorio, com frequencia, e apresentadocomo 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 identificar quatro tipos basicos de problemas. Paracada tipo de problema, e desenvolvida uma formula de contar.

O modelo

Suponhamos que temos um conjunto com n objetos, {a1, ..., an}, e desejamoscontar o numero de maneiras nas quais r objetos, do conjunto, podem serescolhidos. Para especificar, sem ambiguidade, um problema de contar, enecessario 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 simplificar a explicacao, vamos considerar a escolha de dois elemen-

tos(isto e, r = 2) do conjunto {a, b, c}(isto e, n = 3).

Page 205: MATEMÁTICA DISCRETA -Benedito Melo

9.1. TECNICAS DE CONTAR 205

Problema 9 A ordem e importante na escolha. E permitido repeticao.As escolhas sao chamadas 2-sequencias. As 2-sequencias possıveis, usan-

do as letras a, b, c sao: aa, ab, ac, ba, bb, bc, ca, cb, cc. Existem tres escolhas paracada termo, dando 3× 3 sequencias, no todo.

Generalizacao: O numero de r-sequencias(a ordem e importante, as re-peticoes sao permitidas) que podem ser feitas de um conjunto com n objetosdistintos, e o resultado de n escolhas para cada das r posicoes na sequencia.Existem nr sequencias, no todo.

Problema 10 A ordem e importante na escolha. Nao e permitido repiticao.As escolhas sao chamadas 2-permutacoes. As 2-permutacoes possıveis

podemos formar das letras do conjunto {a, b, c} sao ab, ac, ba, bc, ca, cb. Existemtres maneira de escolher a primeira letra na permutacao e, para cada umadessas, dois maneiras para escolher a segunda letra. Existem, ao todo, 3× 2permutacoes ou arranjos.

Generalizacao: O numero de r-permutacoes(a ordem e importante, naorepeticao) que podemos formar de um conjunto de n objetos e

P (n, r) = n(n− 1)...(n− r + 1)

Outros sımbolos podem ser usados, como P nr .

Exemplo 174 Quantas maneiras um clube de dez pessoas pode ele-ger um presidente, um secretario e um tesoureiro?

Solucao: Adimitamos que uma pessoa nao pode assumir dois pos-tos e que cada permutacao de tres pessoas escolhidas, dos dez,corresponde a uma escolha do presidente, secretario e tesoureiro.

P (10, 3) = 10× 9× 8

Isto e, tendo escolhido um presidente(em 10 maneiras) existemnove escolhas para o secretario e oito para o tesoureiro.

Problema 11 A ordem nao e importante. Nao e permitido repeticao.As escolhas sao chamada 2-subconjuntos. Os possıveis 2-subconjuntos de

{a, b, c} sao ab, ac, bc. O sımbolo para o numero de 2-subconjuntos que podemser escolhidos de um conjunto de tres objetos e C(3, 2). A letra C vem dapalavra “combinacao”, que e um nome mais antigo para esse tipo de escolha.

Page 206: MATEMÁTICA DISCRETA -Benedito Melo

206 CAPITULO 9. CONTAR

Generalizacao: O numero de r-subconjuntos, com frequencia, chamador-combinacoes, que podemos fazer de um conjunto de tres objetos e escritoC(n, r). Podem usar outros sımbolos como, Cn

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, essesarranjos 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 possıveis 2-multiconjuntos

do conjunto {a, b, c} sao aa, ab, ac, bb, bc, cc. Consideremos tres caixas rotuladasa, b, c(figura 9.2).

Temos duas letras para escolher, mas podemos escolher essas letras damesma caixa. Modelamos a escolha colocando duas bolas na caixa. Porexemplo, duas bolas na caixa b geraria bb. Uma bola em a e uma bola emb, geraria ab. A selecao bb pode ser lida como uma “palavra” SXXS”, ondeS representa uma parede entre duas caixas e X representa uma bola. Nestanotacao, ab seria representada pela palavra XSXS.

Achar o numero de selecoes e equivalente a achar o numero de “palavras”que podem ser feitas de quatro sımbolos SSXX, as letras Ss representandoas (3− 1) paredes, separando as caixas a, b, c e os Xs, representando as duasbolas. Uma palavra e determinada colocando-se o X em duis das (3− 1 + 2)posicoes. As outras posicoes sao preenchidas, automaticamente, pelos Ss.Isto pode ser feito em C(3− 1 + 2, 2) = C(4, 2) = 6 maneiras.

Generalizacao: O numero de r-multiconjuntos que podem ser escolhidosde 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 caixasrotuladas a1, ..., an, como na figura 9.3. Isto e equivalente a arranjar r Xs e(n− 1) Ss, como uma “palavra”. A palavra e determinada precisamente pelaescolha das posicoes para os r Xs. Essa escolha pode ser feita em C(n−1+r, r)maneiras.

Exemplo 175 Os sinais sao dados atraves de cinco bandeiras numunica poste. As bandeiras de tres cores estao disponıveis nu-ma quantidade suficiente 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 saopossıveis.

Page 207: MATEMÁTICA DISCRETA -Benedito Melo

9.1. TECNICAS DE CONTAR 207

Figura 9.2: Multiconjuntos.

Figura 9.3: r-Multiconjuntos de {a1, a2, ...an}.

Solucao: O problema e encontrar o numero de 5-multiconjuntosde um conjunto de tres objetos. A solucao e

C(3− 2 + 5, 5) = 21

A expressao n(n− 1)...3× 2× 1 aparece com tanta frequencia, em problemascombinatorios, que ela e definida como uma funcao

Definicao 71 (Fatorial)

fatorial: N −→ N

fatorial(n)=

{1 se n = 0n× fatorial(n− 1) se nao

Escrevemos fatorial(n) = n!

Exemplo 176 Computar 6!

6! = 6× 5! = 6× 5× 4!= ...= 6× 5× 4× 3× 2× 1× 1= 720

Page 208: MATEMÁTICA DISCRETA -Benedito Melo

208 CAPITULO 9. CONTAR

Subconjuntos vazios

Os modelos de contar examinados acima, assumem implicitamente que r e nsao inteiros e 1 ≤ r ≤ n. Consideremos, agora, o caso r = 0. Um 0-subconjuntoseria um conjunto vazio. O numero de subconjuntos vazios de {a1, ..., an} eexatamente 1. Portanto, gostarıamos que C(n, 0) = 1. Analogamente, e usualpara o matematica aceitar que existe uma 0-sequencia, uma 0-permutacao eum 0-multiconjunto, para qualquer conjunto {a1, ..., an}.

Agora, os resultados dessa secao podem ser estabelecidos formalmente co-mo proposicoes, cujos provas sao os argumentos feitos acima.

Proposicao 25 Para os inteiros r, n ≥ 0, o numero de r-sequencias que podemser feitas de um conjunto de n objetos e nr.

Prova: O caso r = 0. n0 = 1, dar uma 0-sequencia, concordando comnossa hipotese.

O caso r ≥ 1. O argumento esta dado no Problema 9.

Proposicao 26 Para os inteiros r, n ≥ 0, o numero de r-permutacoes quepodem ser feitas de um conjunto de n objetos e:

P (n, r) =

{n(n− 1)...(n− r + 1)(i.e., rfatores) se n ≥ r ≥ 11 se r = 0

Usando fatorial, o teorema pode ser estabelecido:

P (n, r) =n!

(n− r)!, onde n ≥ r ≥ 0.

Proposicao 27 O numero 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 deque existe exatamente um 0-subconjunto, para quaquer conjunto.

Para o caso r ≥ 0, ja foi feito o argumento no problema 11.

Proposicao 28 O numero de r-multiconjuntos que podemos formar de umconjunto com n objetos, onde 0 ≤ r ≤ e:

Page 209: MATEMÁTICA DISCRETA -Benedito Melo

9.1. TECNICAS DE CONTAR 209

{C(n− 1 + r, r) se n ≥ 11 se n = 0

Prova: O caso n=0. C(n − 1 + 0, 0) = 1 ou, se n = 0, o numeros de0-multiconjuntos e, por convencao, 1. Portanto, o resultado concorda comhipotese de que existe exatamente um 0-multiconjunto, para qualquer con-junto.

Para o caso r ≥ 0, ja foi argumentado, acima.

O raciocınio combinatorial

As proposicoes de 29- 31, abaixo, podem ser provadas algebricamente. En-tretanto, daremos argumentos verbais, para enfatizar a especie de raciocıniocombinatorial de que estamos tratando.

Proposicao 29 Para os inteiros n, r tais que 0 ≤ r ≤ n:

C(n, r) = C(n, n− r)

Prova: Consideremos um conjunto com n objetos, do qual escolhemos ossubconjuntos, para formar um conjunto universo.

Entao, a cada subconjunto de r elementos corresponde, exatamente, umsubconjunto complemento com n− r elementos. Existe uma correspondenciaentre os r-subconjuntos e os seus complementos, que sao todos os n − r-subconjuntos. Portanto, o numero de cada um e o mesmo. Mas, isto e oque diz o enunciado da proposicao, pois C(n, r) conta todos os r-subconjuntose C(n, n− r) conta todos os (n− r)-subconjuntos.

Proposicao 30 Para os inteiros n ≥ 0:

C(n, 0) + C(n, 1) + ... + C(n, n) = 2n

Prova: Consideremos o conjunto S = {a1, a2, ..., an}.O numero de i-subconjuntos de S e C(n, i). O lado esquerdo adiciona

o numero de 0-subconjuntos, 1-subconjuntos, 2-subconjuntos, etc., ate osn-subconjuntos. Isto e, o lado esquerdo nos da o numero de todos os sub-conjuntos, de todos os tamanhos possıveis. Uma outra maneira de contaros subconjuntos e associa-los com strings binarios, de n-dıgitos, pela corres-pondencia “xi esta no subconjunto, se o i-esimo dıgito do string binario for

Page 210: MATEMÁTICA DISCRETA -Benedito Melo

210 CAPITULO 9. CONTAR

1 e, xi nao esta no subconjunto se o i-esimo dıgito for 0. Duas escolhas paracada dıgito nos da 2n strings binarias e, portanto, 2n subconjuntos. Logo,

n∑i=0

C(n, i) = 2n

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 = {a1, a2, ..., as, ..., an}, no qual “as” eum elemento especial.

Todos os subconjuntos com k elementos( os k-subconjuntos) podem serparcionados em duas classes: aqueles que contem as e aqueles que nao contem.

O numero de todos os k-subconjuntos e C(n, k).O numero de k-subconjuntos que nao contem as e o numero de maneiras

de escolher k elementos de U − {as}, isto e, C(n− 1, k − 1).O numero de subconjuntos que contem as e o numero de maneiras de

escolher os outros k − 1 elementos U − {as}, 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, superficialmente, pare-

cem nao ter nada em comum. No entanto, cada um deles pode ser traduzidonum problema com estrutura similar aquele do primeiro exemplo. A identifi-cacao da similaridade estrutural e outro aspecto do raciocınio combinatorial.Os problemas sao todos do tipo “sequencia com repeticao”.

Exemplo 177 Quantas palavras diferentes de oito letras podemosformar 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.

A1A2A3A4A5B1B2C

Na hipotese de as letras serem distintas, existem 8! arranjos dife-rentes. Mas os A’s contribuem com 5! arranjos, para cada arranjo

Page 211: MATEMÁTICA DISCRETA -Benedito Melo

9.1. TECNICAS DE CONTAR 211

das outras letras e os B”s cotribuem com 3! arranjos, para ar-ranjo das outras letras. Por questao de completeza observe que oC contribui com 1! arranjos, para cada arranjo das outras letras.Removendo os subescritos sobram

8!

5!2!1!

arranjos das letras, cada uma representando uma palavra distinta.

Uma maneira alternativa de expressar a resposta do exemplo anterior e:

C(8, 5)× C(3, 2).

Esta forma da resposta e produzida argumentando que os A’s podem sercolocados em cinco das oito posicoes disponıveis, em C(8, 5) maneiras. Os B’spodem, entao, ser colocados nos tres lugares restantes, em C(3, 2) maneiras.Existem, agora, somente uma maneira de colocar a terceira letra. Portanto,o numero de maneira e C(8, 5)× C(3, 2)× 1.

Exemplo 178 Quantas strings binarios de oito dıgitos diferentestem cinco 0’s e tres 1’s?

Solucao: Nesta questao existem oito sımbolos, cinco de uma especiee tres de uma outra. A questao pede para encontrar todos as pa-lavras de oito letras que podem ser formadas dos sımbolos. Comono exemplo 177 podemos colocar, temporariamente, subscrito.

0102030405111213

Na hipotese de que os sımbolos sejam distintos existem 8! arranjosdiferentes. Mas, os 0’s contribuem com 5! arranjos, para cadaarranjo dos 1’s e os 1’s contribuem com 3! arranjos, para cadaarranjo do 0’s. Portanto, existem

8!

5!3!

strings binarios diferentes.

Page 212: MATEMÁTICA DISCRETA -Benedito Melo

212 CAPITULO 9. CONTAR

Figura 9.4: O numero 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 0’s podemser colocados em cinco das oito posicoes disponıveis em C(8, 5) maneiras. Os1’s podem, entao ser colocados nos tres lugares restantes, numa maneira.

Exemplo 179 Encontrar o numero de solucoes da equacao

x + y = 10

onde, x, y, z sao inteiros e x, y, z ≥ 0. As solucoes podem ser geradascolocando 10 bolas em tres caixas rotuladas x, y, z(figura 9.4).

Representamos as bolas pela letra B e as paredes entre as caixaspela letra S.

Entao, cada palavra formada dos 12 sımbolos representa uma so-lucao da equacao.

Por exemplo, BBSBBBSBBBBB representa x = 2, y = 3, z = 55 eBBBBSSBBBBBBrepresenta x = 4, y = 0, z = 6. O argumento doexemplo 177 mostra que o numero de solucoes da equacao e

12!

10!2!

Exemplo 180 Quantas numeros de 1 a 10 000 a soma dos dıgitose 7?

Solucao: O problema e equivalente a colocar sete bolas em quatrocaixas.(figura 9.5).

Solucao: Como no exemplo 179, representemos as bolas pela letraB e as paredes entre as caixas representemos pela letra S. Cada“palavra” de dez sımbolos representa uma solucao da questao:

Page 213: MATEMÁTICA DISCRETA -Benedito Melo

9.2. O BINOMIAL E TEOREMAS MULTINOMIAIS 213

Figura 9.5: Os numeros de 1 a 10 000.

Por exemplo, BBSBBBBSBS representa 2410 e SSBBBBBBSBrepresenta 61.

O argumento do exemplo 177 nos da:

10!

7!3!=

10× 9××8

3× 2× 1= 10× 3× 4 = 120 palavras

Existem 120 numeros de 1 a 10 000, com uma soma de dıgitos 7.

Exemplo 181 O computador aloca trabalhos de quatro impressoras.Dados 12 jobs para ser distribuıdos, de modo que a impresora Ptem 5 jobs, a impressora Q 3 jobs e a impressora R tem dois jobs,achar o numero de maneiras que a distribuicao pode ser feita.

Solucao: O problema pode ser visto como o “o numero de palavrasque podem ser formadas das letras PPPPPQQQRRSS.” A respostae

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 eum inteiro positivo, usando uma abordagem combinatorial e nao algebra.

Vamos ver o que podemos aprender da expansao (a + b)n.

Page 214: MATEMÁTICA DISCRETA -Benedito Melo

214 CAPITULO 9. CONTAR

(a + b)3 = (a + b)(a + b(a + b) (1)= a3 + 3a2b + 3ab2 + b3 (2)= C(3, 0)a3b0 (3)= +C(3, 1)a2b1 (4)= +C(3, 2)a1b2 (5)= +C(3, 3)a0b3 (6)

A linha (1) estabelece o que queremos dizer com os sımbolos no lado es-querdo da equacao.

Cada termo na linha (2) e construıdo escolhendo a de m parenteses e b den parenteses da forma

ambk, onde m + n = 3.

O termo 3a2b e construıdo escolhendo a dos dois parenteses e b de umparentese. A selecao de um parentese do qual tiramos b pode ser feito emC(3, 1) = 3 maneiras e a escolha dos parenteses dos quais tiramos a sao, entao,automaticamente os dois da esquerda.

O termo 3a2 corresponde a C(3, 1)a2b1(linha(4)).O termo a3 e construıdo escolhendo a de tres parenteses e b de nenhum. O

termo a3 corresponde a C(3, 0)a3b0(linha (3)).Em geral, os termos sao da forma C(3, k)ambk, onde m + k = 3.Concisamente, o resultado pode ser estabelecido como:

(a + b)3 =3∑

k=0

C(3, k)ambk, onde m + k = 3

ou

(a + b)3 =3∑

k=0

C(3, k)a3−kbk

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)anb0 + C(n, 1)an−1b1 + ... + C(n, n)a0bn

=∑n

k=0 ambk, m + k = n=

∑nk=0 C(n, k)an−kbk

Page 215: MATEMÁTICA DISCRETA -Benedito Melo

9.2. O BINOMIAL E TEOREMAS MULTINOMIAIS 215

Exemplo 182 Escrever a expansao de (x + 1x)5.

Solucao:

(x + 1x) = x5 + C(5, 1)x4( 1

x) + C(5, 2)x3( 1

x)2 + ...

= x5 + 5x3 + 10x + 10−1 + 5x−3 + x−5

Exemplo 183 Escrever o quociente do termo x11 em (3x + 22)9.

Solucao:

(3x + 2x2)9 =∑9

i=0 C(9, i)(3x)9−i(2x2)i

=∑9

i=0 C(9, i)39−i2ix9+i

Se 9 + i = 11, entao i=2. O coeficiente de x11 e:

C(9, 2)3722 =9× 8

2× 1× 37 × 22 = 314928

Exemplo 184 Prove que∑

k ımpar C(n, k) =∑

k par Cn, k.

Solucao: Seja a=1 e b=-1, na proposicao 32.

Entao, obteremos:

0 = C(n, 0)− C(n, 1) + C(n, 2)− ... + (−1)nC(n, n)

Portanto, a soma dos C(n, k), para k ımpar e igual a soma dosC(n, k), para k par.

O teorema multinomial

O teorema binomial pode ser generalizado para uma expressao multinomialcomo segue.

Proposicao 33 (Multinomial) Para todo n, inteiro positivo,

(x1 + x2 + ... + xm)n

e a soma de todos os termos da forma

Page 216: MATEMÁTICA DISCRETA -Benedito Melo

216 CAPITULO 9. CONTAR

n!

r1!r2!...rm!xr1xr2

2 ...xrmm

Para todos as solucoes, inteiras nao negativas, de r1 + r2 + ... + rm = n.

Prova: Um termo na expansao e obtido do produto

(x1 + x2 + ... + xm)(x1 + x2 + ... + xm)...(x1 + x2 + ... + xm)

selecionando um termo de cada um dos n parenteses.O termo em

xr11 xr2

2 ...xrmm

e obtido selecionando x1 de r1 parenteses, x2 de r2 parenteses e assim pordiante.

Cada selecao corresponde a uma “palavra” construıda de r1 letras x1, r2

letras x2, e assim por diante. A selecao pode ser dada em

n!

r1!r2!...rm!

maneiras.

Exemplo 185 Espandir (x + y + z)3 pela proposicao multinomial.

Solucao:

(x + y + z)3 =∑ 3!

p!q!r!xpyqzr

Para toda solucao inteira de p+q+r=3, p, q, r ≥ 0.

Obtemos

(x + y + z)3 = x3 + y3 + z3 + 3x2y + 3xy2 + 3y2z + 3yz2 + 3x2z+3xz2 + 6xyz

Existem dez termos no todo, que e o numero de solucoes inteirasnao-negativas de p + q + r = 3.

Page 217: MATEMÁTICA DISCRETA -Benedito Melo

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 numero de so-lucoes inteiras nao-negativas de p + q + r = 5.

A resposta e 7!5!2!

= 21.

Exemplo 187 Encontrar o coeficiente de x5 na expansao (1 + 3x +2x2)4.

Solucao:

O termo geral da expansao e

4!

p!q!r!1p(3x)q(2x)r, p + q + r = 4 p, q, r ≥ 0

=4!

p!q!r!(3)q2rxq+2r

Os termos em x5 sao dados pelas solucoes 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 coeficiente de x5 e 4!1!2!× 3× 22 + 4!

3!1!× 33 × 2 = 360.

9.3 Algoritmos

O tema principal deste capıtulo e contar. Entretanto, em alguns problemase util gerar as permutacoes, os subconjuntos ou outros objetos a serem cons-truıdos. Nesta secao, apresentaremos alguns algoritmos para gerar subcon-juntos e um algoritmo para gerar permutacoes.

Page 218: MATEMÁTICA DISCRETA -Benedito Melo

218 CAPITULO 9. CONTAR

Subconjuntos de um conjunto

Algoritmo 10 Para gerar todos os subconjuntos de um conjunto finito.

Entradas: Um conjunto S = {x1, x2, ..., xn}n, o numero de elementos de S.

Saıdas: Todos os subconjuntos de S.

A ideia por tras desse algoritmo e construir uma funcao caracterısticapara identificar os elementos de S, para cada subconjunto. Se S tiver nelementos, os strings binarios com n dıgitos servem ao proposito. Parauma string binaria dada, cada dıgito corresponde a um x em S. Se o dıgitofor 1, entao incluir x no subconjunto. Se o dıgito for 0, entao excluir x.

Metodo: m← 0Enquanto m < 2n :

expressar m como uma string binaria de comprimento n(m = a12

n−1 + a22n−2 + ... + an20)

defina a funcao caracterıstica(ci ← ai, para i = 1, 2, ..., n)escolher o subconjunto Y , correspondendo a m(se ci = 1, entao incluir xi em Y )registrar Y (imprimir ou armazenar num arquivo)m← m + 1.

Exemplo 188 Achar todos os subconjuntos de S = {a, b, c}, usandoo algoritmo 10.

Solucao:

m c1c2c3 Subconjuntos Y0 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 finito.

Page 219: MATEMÁTICA DISCRETA -Benedito Melo

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} epara 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 chamadarecursiva.

Os conjuntos S, S − {x},...formam uma sequencia estritamente decrescente,onde cada conjunto e um subconjunto proprio do anterior. A sequencia deveterminar com o conjunto vazio, ∅, pois S e finito.

Portanto, a recursao termina.

Exemplo 189 Usar o algoritmo 11 para achar todos os subconjun-tos de {a, b, c}.Solucao: Definamos subconjunto como uma funcao do conjunto deconjuntos tal que subconjuntoX significa saıda de todos os subcon-juntos de X.

S x S − {x} Y saıda{a, b, c} a {b, c} subconjunto{b, c} (defer (1)){b, c} b {c} subconjunto{c} (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 deGray.

Definicao 72 Um codigo de Gray de comprimento n e uma sequencia de 2n

strings binarias, cada uma com comprimento n diferindo da sua vizinha, nasequencia, por exatamente um dıgito.

Exemplo 190 Um codigo Gray de comprimento 2 e a sequencia11,01,00,10.

Page 220: MATEMÁTICA DISCRETA -Benedito Melo

220 CAPITULO 9. CONTAR

Figura 9.6: Um grafo 4-vertice.

O codigo Gray no exemplo corresponde a um ciclo Hamiltoniano sobre umgrafo 4-vertice, mostrado na figura 9.6.

Uma algoritmo recursivo para construir codigo de Gray e dado abaixo.

Algoritmo 12 (Codigo de Gray) Para gerar todas as sequencias binarias decomprimento k, em ordem, de modo que as sequencias sucessivas difiram deexatamente um dıgito.

Metodo: Comecar com a sequencia de todos os zeros. Para passar dasequencia

b1b2b3...bk

para a proxima, examinamos as somas de dıgitos

b1 + b2 + b3 + ... + bk,b2 + b3 + ... + bk,

b3 + ... + bk, ..., etc.

Se bi + bi+1 + ... + bk for o primeiro dessas somas a ser par, substituimos odıgito bi por 0, se ele for 1 e 1 se ele for 0.

Se todas as somas forem ımpar isto significa 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).

Page 221: MATEMÁTICA DISCRETA -Benedito Melo

9.3. ALGORITMOS 221

Algoritmo 13 Para gerar todos os subconjuntos de um conjunto finito, usan-do um codigo de Gray.

Entradas: Um conjunto S = {x1, ..., xn}n, o numero de elementos em S.

Saıdas: 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 Graycomo a funcao caracterıstica.

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 caracterıstica, os subconjuntos sao obtidos na seguinteordem.

∅, {a}, {a, b}, {b}, {b, c}, {a, b, c}, {a, c}, {c}

9.3.1 Permutacoes

Sao conhecidos muitos algoritmos para gerar permutacoes. O algoritmo apre-sentado aqui, produz todas a n-permutacoes de um conjunto de n objetos,A = {a1, a2, ..., an}.

Numa secao anterior uma permutacao dos elementos de um conjunto foidescrito como um “arranjo” daqueles elementos nos quais a ordem e impor-tante e nao e permitido repeticoes. Essa descricao nao e satisfatoria como umadefinicao, pois uma “permutacao” e um arranjo. Isto e, uma palavra foi ex-plicada pela outra. A seguinte definicao de permutacao supera esse problema,definindo uma permutacao como uma especie de funcao.

Exemplo 193 A funcao σ e um mepeamento de

A = {a1, a2, a3, a4, a5}

sobre ele proprio, definida por

σ(a1) = a4, σ(a2) = a1, σ(a3) = a5, σ(a4) = a2, σ(a5) = a3.

Page 222: MATEMÁTICA DISCRETA -Benedito Melo

222 CAPITULO 9. CONTAR

Pois a funcao σ e uma a uma de A sobre si proprio, se for umapermutacao de A.

A permutacao σ pode ser definida pela notacao de matriz

(a1 a2 a3 a4 a5

a4 a1 a5 a2 a3

)

na qual cada elemento na linha de cima e mapeado no elemento diretamenteabaixo. Se for conhecido a ordem original a1a2a3a4a5, entao a permutacao esuficientemente identificada por (a4, a1, a5, a2, a3) ou, simplesmente, 41523.

Uma medida do conteudo 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 ai, ou seja, d(ai), e o numero deelementos de A, a esquerda de ai, na permutacao que estaria a direita de ai,na ordem natural. No exemplo, acima, d(a2) = 2, pois a4, a5 estao a esquerdade a2 na ordem natural. Analogamente, d(a1) = 1, d(a3) = 2, d(a4) = 0, d(a5) = 0.

A funcao de deslocamento d e definida, informalmente,

d : {a1, a2, ..., an} −→ {0, 1, ..., (n− 1)}

d(ai) = di =

0 se ai na permutacao σ for mapeado sobre si proprio, ouum elemento para sua esquerda na ordem original

1 se ai for mapeado num elemento k colocado adireita na ordem original.

Exemplo 194 Achar a sequencia de deslocamentos (d1, d2, ..., d5) paraa permutacao σ, definida no exemplo 193, acima.

Solucao:

a1 a2 a3 a4 a5

a4 a1 a5 a2 a3

i 1 2 3 4 5d(i) 1 2 2 0 0

A sequencia de deslocamento e (1, 2, 2, 0, 0).

Definicao 73 (Deslocamento) A funcao de deslocamento para uma permu-tacao σ e a funcao

d : {a1, a2, ..., an} −→ {0, 1, 2, ..., n}

Page 223: MATEMÁTICA DISCRETA -Benedito Melo

9.3. ALGORITMOS 223

Seja σ−1(ai) = aj, entao

d(ai) = di =

{0 se j ≤ ij − i se j > i

A sequencia d1, d2, ..., dn e chamada a sequencia de deslocamento para σ.

Proposicao 34 A funcao de deslocamento, d, satisfaz a desigualdade

0 ≤ di ≤ n − i

para i = 1, 2, 3, ..., n.

Prova: Por inducao 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 proposicao 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 disponıvel na direita

de ai, para deslocar esse elemento. Portanto, a proposicaotambem e verdadeira para n− i = k + 1.

O problema inverso de achar uma sequencia de deslocamentos para umadada permutacao, e encontrar a permutacao correspondente a uma sequenciade deslocamentos.

Algoritmo 14 Para gerar uma permutacao de uma sequencia de deslocamen-tos.

Descricao informal: Dada uma sequencia de n objetos na ordem natural,

a1, a2, ..., an

n possıveis posicoes vagas e uma sequencia de deslocamentos

d1, d2, ..., dn (0 ≤ di ≤ n− i)

colocar a1 na posicao d1 + 1(contado da esquerda para a direita).Se a1, a2, ..., ai−1 ja foi colocado, colocar ai na (di + 1)-esima posicao va-

ga(contada a partir da esquerda).

Page 224: MATEMÁTICA DISCRETA -Benedito Melo

224 CAPITULO 9. CONTAR

Exemplo 195 Achar a permutacao correspondente a sequencia dedeslocamento 3,3,0,1,1,0.

1. Colocar a1 (3+1)-esima posicao vaga.

-,-,-,a1,-,-

2. Colocar a2 na (3+1)-esima posicao vaga.

-,-,-,a1, a2,-

3. Colocar a3 na (0+1)-esima posicao vaga.

a3,-,-,a1, a2,-

4. Colocar a4 na (1+1)-esima posicao vaga.

a3,-,a4, a1, a2,-

5. Colocar a5 na (1+1)-esima posicao vaga.

a3,−, a4, a1, a2, a5

6. Colcar A6 na (0+1)-esima posicao vaga.

a3, a6, a4, a1, a2, a5

Portanto, a permutacao e a3, a6, a4, a1, a2, a5

Proposicao 35 Existe uma correspondencia uma a uma entre o conjunto detodas as permutacoes sobre um conjunto A com n elementos e o conjuntode todas as sequencias de deslocamentos com n termos.

Prova: O numero de permutacoes sobre um conjunto A com n membrose n!.

O numero de sequencias de deslocamentos com n termos e

n× (n− 1)× ...× 2× 1 = n!

da proposicao 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 algoritmo14.

O resultado segue.

Algoritmo 15 Para gerar uma permutacao a partir de uma sequencia dedeslocamentos.

Versao formal:

Page 225: MATEMÁTICA DISCRETA -Benedito Melo

9.3. ALGORITMOS 225

Entradas: uma sequencia de deslocamentos (d1, d2, ..., dn).uma permutacao (a1, a2, ...an).

Precondicoes: a sequencia de deslocamento e a permutacao tem nmembros e satisfazem as respectivas defincoes.

Saıdas: uma permutacao(a1 a2 ... an

p1 p2 ... pn

)

Poscondicoes: a permutacao (p1, ..., pn) casa com a sequencia de deslocamentosde entrada.

As etapas no algoritmo sao descritas, primeiro, em palavras.

Metodo: Rotular as n “posicoes” na permutacao de 1 a n.Para i = 1 ate n:

colocar ai na posicao rotulada di + 1rerotular as posicoes seguindo a posicao di + 1

Agora, vamos detalhar as etapas no algoritmo.

Metodo : Para k = 1 a nc(k) = k

para i = 1 a nk ← di + 1j ← c(k)pj ← ai

para m = k a n− ic(m)← c(m + 1)

Exemplo 196 Achar a permutacao de (a1, a2, ..., a6), correspondendoa sequencia de deslocamentos (3,3,0,1,1,0).

Seja a permutacao

(a1 a2 ... an

p1 p2 ... pn

)

A seguinte tabela mostra valores de domınios sucessivos para c emexecutando o algoritmo.

Page 226: MATEMÁTICA DISCRETA -Benedito Melo

226 CAPITULO 9. CONTAR

k i1 2 3 4 5 6 11 2 3 - 4 5 21 2 3 - - 4 3- 1 2 - - 3 4- 1 - - - 2 5- 1 - - - - 6

Percorrendo as etapas do algoritmo obteremos a seguinte tabelade valores para as variaveis.

i di k c(k) j saıda1 3 4 4 4 p4 = a1

2 3 4 5 5 p5 = a2

3 0 1 1 1 p1 = a3

4 1 2 3 3 p3 = a4

5 1 2 6 6 p6 = a5

6 0 1 2 2 p2 = a6

A saıda e a permutacao

(a1 a2 a3 a4 a5 a6

a3 a6 a4 a1 a2 a5

)

Exemplo 197 Achar as permutacoes de (a1, a2, ..., a6) corresponden-do a sequencia de deslocamentos (0,2,4,0,1,0).

Solucao: A sequencia de deslocamentos e ilegal, pois d3 = 4, con-tradiz a proposicao 24, que estabelece que d3 ≤ 6− 3.

Algoritmo 16 (Permutacoes) Para gerar todas as n-permutacoes de um con-junto com n objetos.

Entradas: um conjunto {a1, a2, ..., an}.Saıdas: todas as permutacoes 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 permutacao

ate n! permutacoes terem sido registradas.

Algoritmo 17 Para encontrar uma nova sequencia de deslocamentos de umadada sequencias de deslocamentos.

Page 227: MATEMÁTICA DISCRETA -Benedito Melo

9.4. EXERCICIOS 227

Entradas: uma sequencia de deslocamento D = (d1, d2, ..., dn).Saıdas: a proxima sequencia de deslocamentos na ordem do “dicionario”, D

′.

Metodo: i← n− 1enquanto di = n− 1 e i 6= 0:

di ← 0i← i− 1

se i > 0, entao di ← di + 1

Exemplo 198 Dada a permutacao (a5, a2, a4, a3, a1), gerar a proximapermutacao 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 Exercıcios

1. Quantos numeros divisıveis por 7 existem no conjunto dos inteiros con-secutivos de 100 a 999?

2. Quantos membros tem a sequencia

abn2c, ..., an, onde n ≥ 2?

Considere o caso n par e o caso n ımpar, separadamente.

3. Qual e 27o numero ı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 dıgitos distintos?

(d) Quantos inteiros ımpares em S tem dıgitos distintos?

Page 228: MATEMÁTICA DISCRETA -Benedito Melo

228 CAPITULO 9. CONTAR

5. Um sistema de PC tem disponıvel duas especies de disco rıgido, trestipos de telas VDU, dois teclados e tres tipos de impressoras. Quantossistemas distintos podem ser conseguidos?

6. O numero 42 tem a fatorizacao prima 2 × 3 × 7. Portanto, 42 pode serescrito de quatro maneiras como o produto de dois fatores inteiros posi-tivos.

(a) Em quantas maneiras 24 pode ser escrito como o produto de doisfatores inteiros positivos?

(b) A fatorizacao em primos de um inteiro positivo n e p1 × p2 × ... × pk.Dado que os fatores primos sao distintos, em quantas maneiras podemosescrever n como o produto de dois fatores inteiros positivos?

7. Quantos inteiros de 1 a 1000 nao sao divisıveis por 8 ou 12?

8. Quantos inteiros de 1 a 1000 nao sao divisıveis por 6 ou 8?

9. Seja S um conjunto de numeros, com quatro dıgitos, formados do con-junto de dıgitos {0,2,3,5,6} permitindo-se repeticoes.

(a) Quantos numeros estao em S?

(b) Quantos numeros em S nao tem dıgitos 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 divisıveis 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 representadopor -... e ‘s’ e representado por ...

Quantos caracteres podem ser representados dessa maneira?

11. Um grafo completo e definido como um grafo simples, onde cada par devertices distintos e adjacente, conectado por uma aresta. O sımbolo paraum grafo completo com n vertices e Kn. Encontrar o numero de arestasem Kn.

12. O grafo bipartido completo Km,n e um grafo simples G, no qual

V (G) = A ∪B, A ∩B = ∅, |A| = m, |B| = n, e

Page 229: MATEMÁTICA DISCRETA -Benedito Melo

9.4. EXERCICIOS 229

E(G) = {{a, b}|a ∈ A, b ∈ B}

Calcular o numero de arestas em Km,n.

13. Quanto inteiros de 1 a 1000, inclusive, contem um 5 ou 6 na sua repre-sentacao decimal?

14. Quantos inteiros de 1 a 1000, inclusive, nao sao divıveis por nenhum dosnumeros 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 numeros consecutivos comsoma maior que 50.

16. Quantas permutacoes podem ser feitas usando todas as letras de cadapalavra?

(a) WAGGA (b)MURRUMBURRAH (c) COONABARABRAN

17. O vencedor de uma competicao e decidido por um juri de tres juızes.Primeiro, os dez melhores entram e sao selecionados. Entao, um dosjuızes escolhe um vecedor dos dez melhores que entraram. Para o maiorpremio ser dado, um competidor que entrar deve ser selecionado comovencedor por, pelo menos, dois dos juızes. Calcular:

(a) O numero de selecoes de vencedores possıveis por tres juızes.

(b) O numero de selecoes nas quais e dado o maior premio.

(c) A fracao de possıbilidades nas quais o maior premio e dado.

18. Quantos inteiros de 1 a 10 000 tem uma soma de dıgitos de 9?

19. Quantas strings binaria de 10-dıgitos, distintas, tem seis 0’s e quatro 1’s?

20. Achar o coeficiente de x5y4z3 em (x− 2y + 3z + w)12.

21. Quantas solucoes tem x+y+z = 15, onde x, y, z sao inteiros nao-negativos?

Achar o numero de termos na expansao de (u + v + w)15.

22. Quantas strings binaria de 12 dıgitos tem oito 0’s e quatro 1’s?

23. Quantos livros devem ser escolhidos dentre 21 livros de matematicas,25 de ciencia da computacao, 21 de literatura, 15 de economia e 30 decontabilidade, para assegurar que existem no mınimo 12 livros sobre omesmo assunto?

Page 230: MATEMÁTICA DISCRETA -Benedito Melo

230 CAPITULO 9. CONTAR

24. De uma lista de 4 homens e 6 mulheres devem ser escolhidos tres gerentes.Quantas selecoes diferentes podem ser feitas, se, no mınimo, uma pessoade cada sexo tem de ser escolhido?

25. Mostre que se 151 inteiros forem escolhidos de {1, 2, 3, ..., 300}, entao aescolha 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 permutacoes geradas imediatamente apos (a5, a4, a3, a1, a2) pelo

algoritmo 15

Page 231: MATEMÁTICA DISCRETA -Benedito Melo

Bibliografia

[1] Abramsky, S. Domain theory in logical form. In Domain Theory inComputing Science, pages 47–53. Computer Society Press of the IEEE,1987.

[2] Benedito M. Acioly. The scott interval analysis: A new approach tointerval mathematics. Revista de Informatica Teorica e Aplicada (RI-TA), 1996. To Appear.

[3] Benedito M. Acioly. The Scott Interval Analysis. In Marcılia A. Campos;Dalcıdio M. Claudio, editor, Proceedings of the Second Workshop onComputer Arithmetic, Interval and Symbolic Computation, pages 4–6.Brazilian Computer Society (SBC), August 1996.

[4] Acioly B. & Bedregal, B. A quasi-metric topology compatible withinclusion-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 RioGrande do Sul, Dezembro 1991. in Portuguese.

[7] Aczel, Peter H.G. Term declaration logic and generalized composita. InSix Annual IEEE Symposium on Logic in Computer Science(LICS’91),pages 22–30. 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. AcademicPress, 1975.

231

Page 232: MATEMÁTICA DISCRETA -Benedito Melo

232 BIBLIOGRAFIA

[10] Asperti, Andrea & Longo Giuseppe. Categories, Types and Structures.Massachusetts Institute of Technology, 1991.

[11] Barendregt, H. The lambda calculus. it’s syntax and semantics. InStudies 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), firstedition, 1990.

[13] Bedergal, B.R. & Acioly, B.M. Sistemas de informacao contiInuos. 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,, number873 in Lecture Notes in Mathematics, pages 146–190, Las Cruces, NewMexico, 1981. Springer-Verlag.

[16] Bell, J.L. Toposes and Local Set Theories. An Introduction. Number 14in 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 Theoryof Computation. John Wiley & Sons, 1976.

[19] Birkoff, Garret. On the structure of abstract algebras. ProceedingsCambridge Philosophical Society, 31:433–454, 1935.

[20] Erret Bishop. Foundations of Constructive Analysis. Mc-Graw Hill,1967.

[21] C.Thomas; Hahn S.W. Bullof, Jack J.; Holyoke, editor. Foundations ofMathematics (Symposium Papers Commemorating the Sixtiex Birth-day of Kurt Godel, 1969.

[22] Bunge, Mario. Tratado de filosofia basica. In Semantica I, volume vol1. EDUSP, 1976.

Page 233: MATEMÁTICA DISCRETA -Benedito Melo

BIBLIOGRAFIA 233

[23] Bunge, Mario. Tratado de filosofia 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-finite 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 WeatherhillInc., 1965.

[28] Costa, M.Amoroso. In Texto 4. As Ideias Fundamentais da Matematicae Outros Ensaios, Biblioteca do Pensamento Brasileiro. EDUSP, 1981.

[29] daCosta, Newton C.A. Introducao 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 andthe 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 ofComputing, 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 andcomputer progamming. Zeitschrift Fur Mathematishe Logik und Grun-dlagen der Mathematik, 36:389–414, 1990.

[36] Diller A. Z. An Introduction to Formal Methods. John Wiley & Sons,1994.

Page 234: MATEMÁTICA DISCRETA -Benedito Melo

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 & JohnMcDowell, editor, Essays in Semantics. Claredon Press, 1976.

[39] H. Enderton. A mathematical introduction to logic. Academic PressInc, 1972.

[40] Bell. E.T. Men of mathematics.

[41] Ferrari, A. T. Metodologia da Pesquisa Cientıfica. McGraw-Hill, 1982.

[42] F.B. Feys, R.; Fitch. Dictionary of Mathematical Logic. Studies inLogic and The Foundations of Mathematics. North-Holland, 1969.

[43] M.C. Fitting. Intuitionistic Logic Model Theory and Forcing. StudiesIn 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 Theoryto Algebra, Analysis, and Topology, number 753 in Lecture Notes inMathematics, pages 302–401. Springer-Verlag, 1979.

[45] F.W.Lawvere, editor. Toposes, Algebraic Geometry and Logic. Number274 in Lecture Notes in Mathematics. Springer-Verlag, 1972.

[46] Gabbay, Dov M. Labelled Deductive Systems. Part 1. Oxford UniversityPress, 1996.

[47] Gabbay, M.Dov & de Queiroz, Ruy J.G.B. Extending the curry-howardinterpretation to linear, relevant and other resourcer logic. The Journalof 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-HollandPublishing 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.

Page 235: MATEMÁTICA DISCRETA -Benedito Melo

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):32–101, January 1977.

[57] Goldblatt, R. Topoi. The Categorial Analysis of Logic, volume 98 ofStudies in Logic and The Foundations of Mathematics. north-holland,1984.

[58] R.L. Goodstein. Recursive Number Theory. Studies in Logic and theFoundation 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 Combinatorsand λ-calculus.

[66] Howard, W.A. The formulae-as-types notion of construction. In J.P.Seldin & J.R. Hindley, editor, Essays on Combinatory Logic, LambdaCalculus and Formalism, pages xxv+606p. Academic Press, 1980.

Page 236: MATEMÁTICA DISCRETA -Benedito Melo

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 inLogic and The Foundation of Mathematics. North-Holland PublishingCompany, 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 Hilbert’s ε-Symbol. MacDo-nald Technical and Scientific, 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.Pfeiffer & 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.

Page 237: MATEMÁTICA DISCRETA -Benedito Melo

BIBLIOGRAFIA 237

[84] Martin-Lof, Per. Truth of a proposition, evidence of a judgement, vali-dity of a proof. Synthese, (73):407–420, 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 577–674. 1990.

[88] Nordstrom, Bengt ; Peterson, Kent & Smith, Jan M. Programming inMartin-Lof’s 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. CambridgeUniversity 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, MethodologyAnd Philosophy of Science, pages 225–250. North-Holland PublishingCompany, 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):38–39, 1960.

[94] Interval’96, 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 ofData Types, page 184, June. International Symposium, France.

[97] Reynolds, John C. Types, abstraction and parametric polimorphism.Information Processing, 1983.

Page 238: MATEMÁTICA DISCRETA -Benedito Melo

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. Master’sthesis, Universidade Federal de Pernambuco, March 1995. In Portugue-se.

[101] Santiago, Regivan & Acioly Benedito. Intervals as real numbers specifi-cation. In Interval’96, October 1996.

[102] Santiago, Regivan & Acioly Benedito. A numerical approximation logic.In Workshop in Arithmetic, Interval and Symbolic Computation, July1996.

[103] Santiago, Regivan & Acioly, Benedito. Toward a logic for numericalapproximations. Revista de Informatica Teorica e Aplicada, 1996. Toappear.

[104] Santiago, Regivan & deQueiroz, Ruy J.G. Toward a proof theory forproofs by induction. In 1st. Workshop LaLLIC, pages 149–164, July1994.

[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 andE. M. Schmidt, editors, Automata, Languages and Programming, volu-me 140 of Lecture Notes in Computer Science, pages 577–613, 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 97–136. 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, pages324–391. springer-Verlag, 1973.

Page 239: MATEMÁTICA DISCRETA -Benedito Melo

BIBLIOGRAFIA 239

[110] Spivey, J.M. Understanding Z.A Specification Language and its FormalSemantics. Cambridge University Press, 1988.

[111] Spivey, J.M. The Z Notation. A Reference Manual. C.A.R. HoareSeries. Pretince Hall, 1992.

[112] Sundholm, Goran. Proof theory and meaning. In Gabbay, Dov &Guenthner, F., editor, Handbook of Philosophical Logic, pages 471–506.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 Arithmeticand 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 & GuenthnerF., editor, Handbook of Philosophical Logic, volume III, chapter III.4,pages 225–339. 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.Specification, Refinement, and Proof.Pretince Hall, 1996.

[123] Martin M. Zuckerman. Sets and Transfinite Numbers. Collier Macmil-lian, 1974.