Indução Matemática Recursão

Slides:



Advertisements
Apresentações semelhantes
Aquiles Burlamaqui AULA 09
Advertisements

Python: Recursão Claudio Esperança.
Exemplos de Indução Matemática
Fluxo em Redes Prof. Ricardo R. Santos.
COMPARAÇÃO MÉTODOS DIRETOS E ITERATIVOS
Elementos de Lógica Matemática
Tópicos de Lógica Proposicional
Recursividade e Iteração Factorial, Fibonacci e Maior Divisor Comum
Recursividade Prof. Alex F. V. Machado
Relações Adriano Joaquim de O Cruz ©2002 NCE/UFRJ
Algoritmos e Programação Estruturada Conceitos básicos
Instituto de Computação - UFF Detecção de Terminação Algoritmos Distribuídos Professora: Lúcia Drummond.
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
BCC101 – Matemática Discreta
BCC101 – Matemática Discreta
BCC 101 – Matemática Discreta I
APRENDIZAGEM COM CONHECIMENTO A PRIORI
Recursividade Conceitos e Aplicações.
EQUAÇÕES POLINOMIAIS Prof. Marlon.
Dividir-e-Conquistar
Rodrigo de Toledo (original: Claudio Esperança)
04(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB.
Recorrências.
Introdução ao -calculus
Lógica para Computação
AXIOMATIZAÇÃO Equipe: André Augusto Kaviatkovski, Daniel Elias Ferreira, Vinicius Zaramella.
Indução Métodos de prova já vistos Excepções
A Lógica das Sentenças Abertas Profa. Ana Florencia Aula 9
TEORIA DOS NÚMEROS Embora existam diversos tipos de números na Matemática (reais, complexos, etc.), o nome "Teoria dos Números" é tradicionalmente reservado.
Conceitos Básicos.
Métodos de Demonstração
Informática Teórica Engenharia da Computação
Sub-programas. Mecanismo de composição de programas Sub-programa está para peça de LEGO assim como um programa está para a construção.
É muito assunto pra pouco espaço no subtítulo
Introdução à Programação
TRABALHO MATEMÁTICA DISCRETA
Princípio de Prova por Indução
Recursividade Programação II.
Informática Teórica Engenharia da Computação
UNIDADE 6 - complemento Funções recursivas
Aulas 9,10 Fábio Nakano.
Recordando o princípio da Indução...
Sintaxe e Semântica na Lógica de Predicados
Funções Rosen 5th ed., §1.8 Estruturas Discretas e Lógica Matemática
Algoritmos Crescimento de Funções
Algoritmos de Busca Local
Algoritmos e Estruturas de Dados I – Recursão
BCC 101 – Matemática Discreta I
Algoritmos e Estruturas de Dados I – Recursão
André Luiz da Costa Carvalho
UNIVERSIDADE SEVERINO SOMBRA
Universidade do Vale do Rio dos Sinos - São Leopoldo -
BCC 101 – Matemática Discreta I
Algoritmos e Estruturas de Dados RECURSIVIDADE. O que é recursividade? Recursividade significa algo ser definido em termos de sí próprio. Em termos de.
Lógica Matemática Introdução.
BCC 101 – Matemática Discreta I
BCC101 – Matemática Discreta
Programação Lógica com Prolog
Para Computação Enumerabilidade, Indução Matemática Aula de Monitoria – Miniprova
Decidibilidade, Corretude, Completude, Consistência
Programação Dinâmica.
Recursividade Profs. De Prog2 e Lab2.
INE Fundamentos de Matemática Discreta para a Computação
Matemática Discreta I BCC101
Alinhamento de Cadeias de DNA COMPARAÇÃO DE SEQÜÊNCIAS
Programação de Computadores - 1
1 Indução Definições Indutivas Prova por indução Referência: Language, Proof and Logic Jon Barwise e John Etchemendy, 1999 Capítulo: 16.
Interpretação do Teorema de Herbrand
TEORIA DOS NÚMEROS Aula 2 – Princípio da Indução Finita
Departamento de Informática – E D L M Teoria dos Conjuntos Rosen 5 th ed., §§ Estruturas Discretas e Lógica Matemática Dep. de Informática – UFMA.
Transcrição da apresentação:

Indução Matemática Recursão Estruturas Discretas e Lógica Matemática Dep. de Informática – UFMA Prof. Anselmo Paiva

Indução O princípio da indução matemática é uma ferramenta muito útil para provar certas propriedades dos números naturais. Não pode ser usada para descobrir teoremas, mas somente para prová-los. Prof. Anselmo Paiva

Indução Seja P(n) uma função proposicioinal, e queremos provar que P(n) é verdadeiro para qualquer n natural : Mostre que P(0) é true. (passo básico) Mostre que se P(n) então P(n + 1) para qualquer nN. (passo indutivo) Então P(n) deve ser true para qualquer nN. (conclusão) Prof. Anselmo Paiva

Mostre que n < 2n para todo inteiro positivo n. Indução Exemplo: Mostre que n < 2n para todo inteiro positivo n. Seja P(n) a proposição “n < 2n.” Mostre que P(1) é true. (passo básico) P(1) é true, porque 1 < 21 = 2. Prof. Anselmo Paiva

Mostre que se P(n) é true, então P(n + 1) é true. ( passo indutivo) Indução Mostre que se P(n) é true, então P(n + 1) é true. ( passo indutivo) Assuma que n < 2n é true. Precisamos mostrar que P(n + 1) é true, n + 1 < 2n+1 Começamos com n < 2n: n + 1 < 2n + 1  2n + 2n = 2n+1 Assim, se n < 2n então n + 1 < 2n+1 Prof. Anselmo Paiva

Então P(n) deve ser true para qualquer inteiro possitivo. (conclusão) Indução Então P(n) deve ser true para qualquer inteiro possitivo. (conclusão) n < 2n é true para todo inteiro positivo. C.Q.D Prof. Anselmo Paiva

Outro exemplo (“Gauss”): Mostre que P(0) é true.(passo base) Indução Outro exemplo (“Gauss”): 1 + 2 + … + n = n (n + 1)/2 Mostre que P(0) é true.(passo base) Para n = 0 temos 0 = 0. True. Prof. Anselmo Paiva

Mostre que se P(n) então P(n + 1) para qualquer nN. (passo indutivo) Indução Mostre que se P(n) então P(n + 1) para qualquer nN. (passo indutivo) 1 + 2 + … + n = n (n + 1)/2 1 + 2 + … + n + (n + 1) = n (n + 1)/2 + (n + 1) = (2n + 2 + n (n + 1))/2 = (2n + 2 + n2 + n)/2 = (2 + 3n + n2 )/2 = (n + 1) (n + 2)/2 = (n + 1) ((n + 1) + 1)/2 Prof. Anselmo Paiva

Então P(n) deve ser true para todo nN. (conclusão) Indução Então P(n) deve ser true para todo nN. (conclusão) 1 + 2 + … + n = n (n + 1)/2 é true para todo nN. C.Q.D. Prof. Anselmo Paiva

É chamado de segundo princípio da indução matemática. Existe outra técnica de prova similar ao princípio da indução matemática. É chamado de segundo princípio da indução matemática. Pode ser usado para provar que uma função proposicional P(n) é true para todo número natural. Prof. Anselmo Paiva

O segundo princípio da indução matemática: Mostre que P(0)é true. (passo básico) Mostre que se P(0) e P(1) e … e P(n), então P(n + 1) para todo nN. (passo indutivo) Então P(n) deve ser true para todo nN. (conclusão) Prof. Anselmo Paiva

Mostre que P(2) é true. (passo básico) Indução Exemplo: Mostre que todo inteiro maior que 1 pode ser escrito como um produto de número primos. Mostre que P(2) é true. (passo básico) 2 é o produto de um primo: ele mesmo. Prof. Anselmo Paiva

indução mostre que se P(2) e P(3) e … e P(n), então P(n + 1) para qualquer nN. (passo indutivo) Dois casos possíveis: Se (n + 1) é primo, então P(n + 1) é true. Se (n + 1) não é primo, ele pode se escrito como produto de dois inteiros a e b tal que 2  a  b < n + 1. Pwla hipótese de indução, a e b podems er escritos como produtos de primos. Então, n + 1 = ab pode ser escrito como um produto de primor. Prof. Anselmo Paiva

Assim, P(n) deve ser true para qualquer nN. (conclusão) Indução Assim, P(n) deve ser true para qualquer nN. (conclusão) C.Q.D. Provamos que todo inteiro maior que 1 pode ser escrito como um produto de números primos. Prof. Anselmo Paiva

Definições Recursivas recursão é um princípio relacionado à indução matemática. Numa definição recursiva um objeto é descrito em função de sim mesmo. Podemos definir recursivamente sequências, funções e conjuntos. Prof. Anselmo Paiva

Sequências Recursivamente Definidas Exemplo: A sequência {an} de pontências de 2 é dada por an = 2n para n = 0, 1, 2, … . A mesma sequência pode ser definida recursivamente: a0 = 1 an+1 = 2an para n = 0, 1, 2, … Obviamente indução e recursão são similares. Prof. Anselmo Paiva

Funções Definidas Recursivamente Podemos usar o seguinte método para definir uma função com domínio nos números naturais: Especifique o valor da função para zero. Dê uma regra para encontraro valor da função para um inteiro qualquer, a partir dos inteiros menores que ele. Um definição assim é denominada recursiva. Prof. Anselmo Paiva

Funções Definidas Recursivamente Exemplo: f(0) = 3 f(n + 1) = 2f(n) + 3 f(1) = 2f(0) + 3 = 23 + 3 = 9 f(2) = 2f(1) + 3 = 29 + 3 = 21 f(3) = 2f(2) + 3 = 221 + 3 = 45 f(4) = 2f(3) + 3 = 245 + 3 = 93 Prof. Anselmo Paiva

Funções Definidas Recursivamente Como definir a função fatorial (f(n) = n!) recursivamente ? f(0) = 1 f(n + 1) = (n + 1)f(n) f(1) = 1f(0) = 11 = 1 f(2) = 2f(1) = 21 = 2 f(3) = 3f(2) = 32 = 6 f(4) = 4f(3) = 46 = 24 Prof. Anselmo Paiva

Funções Definidas Recursivamente Exemplo: Números de Fibonacci f(0) = 0, f(1) = 1 f(n) = f(n – 1) + f(n - 2) f(0) = 0 f(1) = 1 f(2) = f(1) + f(0) = 1 + 0 = 1 f(3) = f(2) + f(1) = 1 + 1 = 2 f(4) = f(3) + f(2) = 2 + 1 = 3 f(5) = f(4) + f(3) = 3 + 2 = 5 f(6) = f(5) + f(4) = 5 + 3 = 8 Prof. Anselmo Paiva

Conjuntos Definidos Recursivamente Se queremos definir um conjunt recursivamente: Um conjunto inicial de elementos, Regras para construção des demais elementos a apartir do conjunto incial. Exemplo: Seja S definido recursivamente por: 3  S (x + y)  S if (x  S) e (y  S) S é o conjunto dos inteiros positivos divisíveis por 3. Prof. Anselmo Paiva

Conjuntos Definidos Recursivamente Prova: Seja A o conjunto de todos os inteiros positivos divisíveis por 3. Para mostrar que A = S,(A  S e S  A). Parte I: Prove que A  S Mostrar que todo inteiro positivo divisível por 3 está em S. Indução matemática. Prof. Anselmo Paiva

Conjuntos Definidos Recursivamente Seja P(n) a afirmativa “3n pertence a S”. Passo básico: P(1) é true, porque 3 está em S. Passo Indutivo: Se P(n) é true, então P(n + 1) é true. Assuma que 3n está em S. Como 3n está em S e 3 está em S Da definição recursiva de S temos que 3n + 3 = 3(n + 1) também está em S. Conclusãon da Parte I: A  S. Prof. Anselmo Paiva

Conjuntos Definidos Recursivamente Part II: Mostrar que : S  A. Passo básico: Todos os elementos iniciais de S estão em A 3 está em A. True. Passo Indutivo: (x + y) está em A se x e y estão em S. Se x e y estão em A, Então 3 | x e 3 | y. Do Teorema Isegue que 3 | (x + y). Conclusão da Parte II: S  A. Logo: A = S. Prof. Anselmo Paiva

Conjuntos Definidos Recursivamente Exemplo: Fórmulas bem formadas de variáveis, numeria s e operadores de {+, -, *, /, ^} são definidas por: x é uma fórmula bem formada se x é um numeral ou uma variável. (f + g), (f – g), (f * g), (f / g), (f ^ g) são fórmulas bem formadas. Prof. Anselmo Paiva

Conjuntos Definidos Recursivamente Com esta definição, podemos construir fórmulas como:: (x – y) ((z / 3) – y) ((z / 3) – (6 + 5)) ((z / (2 * 4)) – (6 + 5)) Prof. Anselmo Paiva

Algoritmos Recursivos Um algoritmo é denominado recursivo se resolve um problema reduzindo-o a uma instância do mesmo problema com tamanho menor. Exemplo I: Algoritmo Recursivo de Fibonacci procedure fibo(n: nonnegative integer) if n = 0 then fibo(0) := 0 else if n = 1 then fibo(1) := 1 else fibo(n) := fibo(n – 1) + fibo(n – 2) Prof. Anselmo Paiva

Algoritmos Recursivos Avaliação Recursiva de Fibonacci: f(4) f(3) f(2) f(2) f(1) f(1) f(0) f(1) f(0) Prof. Anselmo Paiva

Algoritmos Recursivos procedure iterative_fibo(n: nonnegative integer) if n = 0 then y := 0 else x := 0 y := 1 for i := 1 to n-1 z := x + y x : = y y := z end end {y is the n-th Fibonacci number} Prof. Anselmo Paiva

Algoritmos Recursivos Para cada algoritmo recursivo, existe um equivalente iterativo. Algoritmos recursivos são menores, mais elegantes e fáceis de entender Algoritmos iterativos são em geral mais eficientes em tempo e memória. Prof. Anselmo Paiva