técnicas de prova

48
CMP601 - Algoritmos e Teoria da Computação © (INF-UFRGS) Técnicas de Prova CMP601 - Algoritmos e Teoria da Computação 1

Upload: mathias-fassini-mantelli

Post on 02-Oct-2015

5 views

Category:

Documents


0 download

DESCRIPTION

Técnicas de prova - Teoria da computação

TRANSCRIPT

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Tcnicas de ProvaCMP601 - Algoritmos e Teoria da Computao

    1

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Conjuntos

    Colees de elementos: sem ordem

    sem repetio

    descritos por extenso ou compreenso

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Operaes sobre Conjuntos

    pertinncia: x C continncia: C1 C2 unio: C1 C2 interseco: C1 C2 diferena: C1 - C2 produto cartesiano: C1 C2 potncia: C2 ou P(C)

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Relaes e Funes

    Uma relao uma associao entre elementos de um conjunto A e de um conjunto B, ou seja, um subconjunto de A B.

    Uma relao chamada de funo se cada elemento de A est associado a no mximo um elemento de B.

    1

    2

    3

    A B

    F

    1

    2

    3

    A B

    R

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Funes Uma funo pode ser total/parcial

    injetora

    sobrejetora

    bijetora

    1

    2

    3

    1

    2

    3

    123

    1

    2

    3

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Operaes sobre Funes funo inversa (somente para injetoras): f-1

    composio: f1 f2

    1

    2

    3

    1

    2

    3

    f f -1

    1

    2

    3

    f2

    abc

    f1 f2

    f1

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Conjuntos Infinitos(Funes Infinitas)

    Conjuntos definidos por enumerao so finitos. Conjuntos definidos atravs de produto cartesiano

    ou unio sero infinitos se um dos componentes for infinito.

    Mas como definir um conjunto infinito sem usar outro conjunto infinito como base?

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Problema: Como definir conjuntos infinitos?

    Queremos definir um conjunto infinito

    ... de maneira finita;

    ... sem usar outro conjunto infinito na definio;

    ...de forma a tornar fcil trabalhar com/verificar propriedades dos elementos deste conjunto.

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Exemplo: Conj. dos Naturais

    N1 = {1, 2, 3, ...}

    no uma definio precisa

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Exemplo: Conj. dos Pares

    no uma definio precisase o conj. dos naturais no

    for definido

    Par = {x|x = 2n e n N1}

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Como definir estes conjuntos?

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Induo e Recurso

    INDUO RECURSO

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Induo e Recurso

    INDUO RECURSO

    tcnica de prova tcnica de definio

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Recurso

    Definir algo em termos de si prprio. Porm, no uma definio desorganizada. Uma definio recursiva tem 3 partes:

    (1)Base

    (2)Passo

    (3)Clusula de excluso

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Conj. Naturais O conjunto dos nmeros naturais pode ser definido

    pela 3 regras a seguir:

    R1. 1 2 N1

    R2. Se n 2 N1, o sucessor de n pertence a N1

    R3. Somente elementos obtidos a partir dasregras R1 e R2 pertencem a N1

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Conj. Naturais O conjunto dos nmeros naturais pode ser definido

    pela 3 regras a seguir:

    R1. 1 2 N1

    R2. Se n 2 N1, o sucessor de n pertence a N1

    R3. Somente elementos obtidos a partir dasregras R1 e R2 pertencem a N1

    BASE

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Conj. Naturais O conjunto dos nmeros naturais pode ser definido

    pela 3 regras a seguir:

    R1. 1 2 N1

    R2. Se n 2 N1, o sucessor de n pertence a N1

    R3. Somente elementos obtidos a partir dasregras R1 e R2 pertencem a N1

    PASSO

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Conj. Naturais O conjunto dos nmeros naturais pode ser definido

    pela 3 regras a seguir:

    R1. 1 2 N1

    R2. Se n 2 N1, o sucessor de n pertence a N1

    R3. Somente elementos obtidos a partir dasregras R1 e R2 pertencem a N1

    EXCLUSO

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Conj. Naturais

    1 BASE (regra R1)

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Conj. Naturais

    1

    PASSO (regra R2)22 o sucessor de 1

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Conj. Naturais

    1

    PASSO (regra R2)

    23 o sucessor de 2

    3

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Conj. Naturais

    1

    PASSO (regra R2)

    2

    3

    4

    n

    Usando a regra 2, conseguimos colocar

    qualquer natural n no conjunto!

    Portanto, este um conjunto infinito!!!

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Conj. Naturais

    1

    EXCLUSO(regra R3)

    2

    3

    4

    Usando a regra 3, exclumos do conjunto elementos que no so

    nmeros naturais.

    ... 2.1

    A

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Definio Recursiva Permite descrever conjuntos infinitos Constri conjuntos estruturados: existe sempre pelo menos um elemento

    mnimo (base)

    existe uma relao de ordem (parcial) entre os elementos do conjunto (dada pelo passo - ou passos)

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Definio Recursiva

    O fato do conjunto construdo ser estruturado tem muitas vantagens:

    permite sabermos se algum elemento est ou no no conjunto, sem termos que varrer todo o conjunto;

    nos d uma maneira de construir programas que considerem todos os elementos do conjunto, ou, visto de outra forma,

    nos d uma maneira de provar propriedades dos elementos do conjunto.

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Definio Recursiva

    O fato do conjunto construdo ser estruturado tem muitas vantagens:

    permite sabermos se algum elemento est ou no no conjunto, sem termos que varrer todo o conjunto;

    nos d uma maneira de construir programas que considerem todos os elementos do conjunto, ou, visto de outra forma,

    nos d uma maneira de provar propriedades dos elementos do conjunto.

    programas recursivos

    provas por induo

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Definio Recursiva

    O fato do conjunto construdo ser estruturado tem muitas vantagens:

    permite sabermos se algum elemento est ou no no conjunto, sem termos que varrer todo o conjunto;

    nos d uma maneira de construir programas que considerem todos os elementos do conjunto, ou, visto de outra forma,

    nos d uma maneira de provar propriedades dos elementos do conjunto.

    programas recursivos

    provas por induo

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Outro exemplo: Conj. Par O conjunto dos nmeros pares pode ser definido

    pela 3 regras a seguir:

    R1. 2 2 Par

    R2. Se n1 2 Par e n2 2 Par, entao n1 + n2 2 Par

    R3. Somente elementos obtidos a partir dasregras R1 e R2 pertencem a Par

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Conj. Par

    2 BASE (regra R1)

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Conj. Par

    2

    PASSO (regra R2)44=2+2

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Conj. Par

    2

    PASSO (regra R2)

    44=2+2

    88=4+4

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Conj. Par

    2

    PASSO (regra R2)44=2+2

    88=4+4

    66=4+2

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Conj. Par

    2

    44=2+2

    88=4+4

    66=4+2

    ...

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Def. Recursiva

    Uma definio recursiva pode ter vrias bases e vrios passos...

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Conj. AB O conjunto dos AB definido pela 5 regras a seguir:

    R1. a 2 AB

    R2. b 2 AB

    R3. Se X 2 AB e Y 2 AB, entao XYX 2 AB

    R4. Se X 2 AB e Y 2 AB, entao XXYXX 2 AB

    R5. Somente elementos obtidos a partir dasregras R1 a R4 pertencem a AB

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Conj. AB O conjunto dos AB definido pela 5 regras a seguir:

    R1. a 2 AB

    R2. b 2 AB

    R3. Se X 2 AB e Y 2 AB, entao XYX 2 AB

    R4. Se X 2 AB e Y 2 AB, entao XXYXX 2 AB

    R5. Somente elementos obtidos a partir dasregras R1 a R4 pertencem a AB

    BASES

    PASSOS

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Tcnicas Bsicas de Prova

    Provas Condicionais: Para provar que uma propriedade do tipo Se P ento Q verdade pode-se

    (i) Assumir que P verdade.(ii) Deduzir Q a partir de (i).

    Provas por Contradio: Para provar que P verdade pode-se

    (i) Assumir que P verdade (ou seja, P falsa).(ii) Deduzir falso a partir de (i) (ou seja, chegar a uma

    contradio)

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Provar ou Refutar...(A) Se C1 C2 e a propriedade P vale para C1,

    ento P vale para C2.

    (B) Se C1 C2 e a propriedade P vale para C2, ento P vale para C1.

    (C) Todo nmero par divisvel por 4.

    (D) No existe um nmero mpar que seja divisvel por 4.

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Provas Usando a Estrutura do Conjunto

    Como provar propriedades dos elementos de um conjunto infinito construdo usando recurso?

    Por exemplo, como provar a propriedade:Todos os elementos do conjunto AB

    tem um nmero mpar de letras.

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Induo Uma prova por induo pode ser realizada sobre um

    conjunto construdo por recurso.

    Para provar que a propriedade P vale para qualquer elemento de um conjunto C prova-se:

    (1)que todas as bases de C possuem a propriedade P;

    (2)que todos os passos utilizados para construir novos elementos de C a partir de elementos j existentes preservam a propriedade P, ou seja, dados elementos de C que possuem a propriedade P, utilizando-se as operaes definidas nos passos somente se constri elementos que possuem a propriedade P.

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Induo

    Por que provar esses 2 tens suficiente,

    se o conjunto infinito?

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Induo

    Por que provar esses 2 tens suficiente,

    se o conjunto infinito?

    Porque qualquer elemento de C ou uma base ou foi obtido a partir das bases por

    sucessivas aplicaes das operaes definidas nos passos.

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Provando Propriedades...

    Todos os elementos do conjunto AB tem um nmero mpar de letras.

    BASES: (regras R1 e R2)

    (i) a tem um nmero mpar de letras?

    (ii) b tem um nmero mpar de letras?

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Provando Propriedades...

    Todos os elementos do conjunto AB tem um nmero mpar de letras.

    BASES: (regras R1 e R2)

    (i) a tem um nmero mpar de letras?

    (ii) b tem um nmero mpar de letras?Verdadeiro!

    Verdadeiro!

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Provando Propriedades...PASSOS: (regras R3 e R4)

    (i) assumindo que X e Y tem um nmero mpar de letras, XYX tem um nmero mpar de letras?

    hiptese de induo

    (ii) assumindo que X e Y tem um nmero mpar de letras, XXYXX tem um nmero mpar de letras?

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Provando Propriedades...PASSOS: (regras R3 e R4)

    (i) assumindo que X e Y tem um nmero mpar de letras, XYX tem um nmero mpar de letras?

    Verdadeiro!

    Verdadeiro!

    hiptese de induo

    (ii) assumindo que X e Y tem um nmero mpar de letras, XXYXX tem um nmero mpar de letras?

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Induo Natural (Matemtica)

    Induo sobre o conjunto dos nmeros naturais.R1. 1 2 N1

    R2. Se n 2 N1, o sucessor de n pertence a N1

    R3. Somente elementos obtidos a partir dasregras R1 e R2 pertencem a N1

    Obs: + Pode-se usar o conjunto dos naturais iniciando no zero ( ). + um caso especial de induo estrutural.

  • CMP601 - Algoritmos e Teoria da Computao (INF-UFRGS)

    Exerccios1. Prove que

    2. Dadas as funes f,g: abaixo, prove que f = g.

    3. Considere o conjunto L (de listas de nmeros) definido porR1. empty L.R2. Se n e l L, ento nl L.R3. Nada mais pertence a L.

    Prove que a soma dos elementos de uma lista de L maior ou igual ao seu tamanho.

    4. Considerando a incluso da regra a seguir na definio de L, prove que o nmero de *s (asteriscos) em listas no vazias de L sempre par.

    R2,5. Se l L, ento **l L.

    nX

    i=1

    i =n(n+ 1)

    2

    f(n) =

    5 se n = 0f(n 1) + 3 caso contrario g(n) = 5 + 3n