Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias [email protected]...
Transcript of Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias [email protected]...
![Page 1: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/1.jpg)
Teoria da ComputaçãoEQUIVALÊNCIA DE PROGRAMAS E
MÁQUINA
Fabrício Dias
UNIPÊ – Centro Universitário de João PessoaCurso de Ciências da Computação
![Page 2: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/2.jpg)
Agenda
Programas, máquinas e computações Equivalências de programas e máquinas Programas equivalentes Função parcial Equivalência forte de programas Equivalência de máquinas.
![Page 3: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/3.jpg)
Relembrando: Programas, máquinas e computações
Programa – é um conjunto de operações e testes compostos de acordo com uma estrutura de controle;
Tipos de Programas: Monolítico Iterativo Recursivo
![Page 4: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/4.jpg)
Máquina
Uma máquina é capaz de interpretar os programas de acordo com os dados fornecidos Deve possuir uma interpretação para cada operação
ou teste que constitui o programa.
![Page 5: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/5.jpg)
Computação e função computada
Computação é um histórico do funcionamento da máquina para o programa, considerando um valor inicial
Função computada é uma função (parcial) induzida a partir da máquina e do programa dados.
![Page 6: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/6.jpg)
Equivalência de Programas e Máquinas
![Page 7: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/7.jpg)
Programas Equivalentes
Funções computadas permitem introduzir algumas importantes noções de equivalências de programas e máquinas Programas equivalentes fortemente Programas equivalentes Máquinas equivalentes.
![Page 8: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/8.jpg)
Programas Equivalentes
Programas equivalentes fortemente Quando as correspondentes funções computadas
coincidem para qualquer máquina Programas equivalentes
Quando as correspondentes funções computadas coincidem para uma dada máquina
Máquinas equivalentes Quando as máquinas podem simular umas às
outras
![Page 9: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/9.jpg)
Importância
A relação equivalência forte de programas é importante, porque ao agrupar diferentes programas em classes de equivalências de programas cujas funções coincidem, fornece subsídios para analisar propriedades de programas como complexidades.
![Page 10: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/10.jpg)
Diagrama
Um importante resultado é que programas
recursivos são mais gerais que os monolíticos, os
quais, por sua vez, são mais gerais que os
iterativos.
Programas recursivos
Programas monolíticos
Programas iterativos
![Page 11: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/11.jpg)
Função Parcial
Definição: É uma função que só está definida em parte do seu domínio.
Igualdade de funções parciais Duas funções parciais f,g: X → Y são ditas iguais,
ou seja, f = g, se e somente se, para cada x X: f(x) e g(x) são definidas e f(x) = g(x)
![Page 12: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/12.jpg)
Equivalência Forte de Programas
Definição: Sejam P e Q dois programas, não necessariamente do mesmo tipo: Então o par (P,Q) está na Relação Equivalência
Forte de Programas, P ≡ Q , se e somente se, para qualquer máquina M, as correspondentes funções parciais computadas são iguais, <P,M> = <Q,M>.
![Page 13: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/13.jpg)
Equivalência Forte de Programas
Para todo programa iterativo, existe uma programa monolítico fortemente equivalente;
Para todo programa monolítico, existe um programa recursivo fortemente equivalente; Obs.: A inversa não é verdadeira
necessariamente.
![Page 14: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/14.jpg)
Equivalência Forte de Programas
Teorema 1: Iterativo → Monolítico
Para qualquer programa iterativo Pi ,
existe um programa monolítico Pm, tal
que Pi ≡ P
m
![Page 15: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/15.jpg)
Equivalência Forte de Programas
Teorema 2: Monolítico → Recursivo
Para qualquer programa monolítico Pm
,
existe um programa recursivo Pr, tal que
Pm ≡ P
r .
![Page 16: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/16.jpg)
Equivalência Forte de Programas
Corolário 1: Iterativo → Recursivo Para qualquer programa iterativo P
i ,
existe um programa recursivo Pr, tal que
Pi ≡ P
r
![Page 17: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/17.jpg)
Equivalência Forte de Programas
Teorema 3: Dado um programa recursivo Pr qualquer, não
necessariamente existe programa monolítico Pm,
tal que Pr ≡ Pm.
![Page 18: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/18.jpg)
Equivalência Forte de Programas
Teorema 4: Dado um programa monolítico P
m qualquer,
não necessariamente existe programa iterativo P
i, tal que P
m ≡ P
i
![Page 19: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/19.jpg)
Equivalência Forte de Programas
É importante notar que as 3 classes de formalismos possuem o mesmo poder computacional, isto é: para qualquer programa recursivo e para
qualquer máquina, existe um programa monolítico e existe uma máquina tal que as correspondentes funções computadas coincidem.
![Page 20: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/20.jpg)
Equivalência Forte de Programas
existe um algoritmo para determinar se dois
programas monolíticos (respectivamente,
iterativos) são ou não equivalentes fortemente
até o momento, não é conhecido se existe ou não
um algoritmo para mostrar equivalência forte de
dois programas recursivos.
![Page 21: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/21.jpg)
Equivalência de Máquinas
Analogamente às equivalências de programas, pode-se estabelecer noções de equivalência de máquinas
Afirma-se que duas máquinas são equivalentes se uma pode simular a outra e vice-versa.
![Page 22: Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências.](https://reader035.fdocumentos.tips/reader035/viewer/2022081420/552fc0fb497959413d8b9914/html5/thumbnails/22.jpg)
Dúvidas????