equalização de canais de comunicação baseada em redes...

27
EA869 Computabilidade Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato 1

Upload: others

Post on 24-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

EA869 Computabilidade

Faculdade de Engenharia Elétrica e de Computação (FEEC)

Universidade Estadual de Campinas (UNICAMP)

Prof. Levy Boccato

1

Page 2: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Introdução Vimos na aula anterior que a principal motivação para o

desenvolvimento da computação foi a busca por resolver problemas de forma mais ágil e precisa.

Exemplos: Calculadora, régua de cálculo.

Bombe – decifrar mensagens produzidas pela máquina Enigma.

ENIAC – cálculos balísticos.

A disponibilidade de uma máquina digital programável, de propósito geral, conhecida como computador, representa um passo extraordinário para que soluções efetivas sejam alcançadas em um tempo notavelmente inferior.

Contudo, quais problemas podem ser resolvidos com o auxílio desta máquina? Todos?

2

Page 3: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Exemplo Problema: dados dois números naturais a e b diferentes de

zero, determine o máximo divisor comum entre eles.

3

Euclides, 300 a.C.

É possível provar que este procedimento sempre termina.

Algoritmo de Euclides

Page 4: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Outro exemplo Problema: determinar o menor número perfeito maior do

que N.

Um número é dito ser perfeito caso seja igual à soma de todos os seus divisores (exceto ele próprio).

Exemplos:

6 = 1 + 2 + 3

28 = 1 + 2 + 4 + 7 + 14

4

Não é possível provar que este procedimento sempre termina.

Até hoje, são conhecidos 51 números perfeitos, sendo que o maior deles possui 49.724.095 dígitos.

Page 5: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Tipos de problemas Podemos perceber, portanto, a existência de dois tipos de

problemas:

5

Problemas

Aqueles que possuem um procedimento que sempre

termina (obtém um resultado).

Aqueles que possuem um procedimento que não é possível comprovar que

sempre termina.

ALGORITMOS

PROCEDIMENTOS

Page 6: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Procedimento Propriedades de um procedimento:

1. A descrição do procedimento deve ser finita, composta por uma sequência finita de palavras e símbolos que o descrevem.

2. Há sempre um conjunto de dados de entrada e pode ser previsto um resultado, ou um conjunto de resultados, como ocorre no caso do MDC.

3. Algum agente pode executar o procedimento, tratando e armazenando resultados intermediários e finais.

4. Toda instrução – passo atômico do procedimento – deve estar bem definida e ser passível de execução em tempo finito.

6

Page 7: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Procedimento Propriedades de um algoritmo:

1. A descrição do procedimento deve ser finita, composta por uma sequência finita de palavras e símbolos que o descrevem.

2. Há sempre um conjunto de dados de entrada e pode ser previsto um resultado, ou um conjunto de resultados, como ocorre no caso do MDC.

3. Algum agente pode executar o procedimento, tratando e armazenando resultados intermediários e finais.

4. Toda instrução – passo atômico do procedimento – deve estar bem definida e ser passível de execução em tempo finito.

5. Deve garantidamente terminar sua execução após um número finito de passos para qualquer entrada.

7

Page 8: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Computabilidade Passos para resolver um problema com o auxílio de um

computador:

Computadores somente executam comandos previamente definidos.

Logo, para que computadores resolvam um determinado problema, é preciso que exista um algoritmo para ele.

Ou seja, temos de saber se o problema é ou não computável.

8

Problema Crio um

procedimento para encontrar

sua solução

O procedimento comprovadamente gera um resultado em tempo finito?

O problema é computável!

Algoritmo

Page 9: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Computabilidade Computabilidade: refere-se à existência ou não de um

procedimento que resolve um determinado problema em um número finito de passos.

9

Não existe um algoritmo para decidir sobre a

computabilidade de qualquer

problema bem formulado.

Todos os problemas

Problemas computáveis

Page 10: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Computabilidade Alan M. Turing:

Em seu brilhante trabalho intitulado “On Computable Numbers, with an application to the Entscheidungsproblem” (1936), Turing traduz a noção de computabilidade em termos da existência de uma máquina abstrata – a chamada máquina de Turing (MT).

Problema da decisão (Entscheidungsproblem): existe um algoritmo capaz de decidir se uma proposição lógica arbitrária é verdadeira ou falsa? Em outras palavras, existe um algoritmo que consegue demonstrar a veracidade (ou não) de qualquer proposição lógica a partir dos axiomas da lógica de primeira ordem?

10

Page 11: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Computabilidade Alan M. Turing:

Em essência, a MT é uma máquina de estados finitos dotada de uma fita duplamente infinita e de um leitor/atuador.

Características:

A fita contém símbolos pertencentes a um alfabeto finito.

Uma tabela de configurações define a ação tomada pela máquina dependendo do estado em que ela se encontra, bem como do símbolo atualmente percebido na fita.

A ação envolve: (1) apagar ou escrever um símbolo; (2) mover o sensor para a direita ou esquerda; e (3) alterar o estado da máquina.

11

Page 12: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Computabilidade Exemplo de MT:

12

Estado Símbolo Ação Novo Estado

A Em branco P ə; R; P ə; R; P0;

R; R; P0; L; L B

B 1 R; P x; L; L; L B

B 0 Nenhuma C

C 0 ou 1 R; R C

C Em branco P 1; L D

D x E x; R C

D ə R E

D Em branco L; L D

E 0, 1, x ou ə R; R E

E Em branco P 0; L; L B

Legenda: L – mover para esquerda R – mover para direita P – imprimir E - apagar

Lida em notação binária, produzimos a seguinte sequência (com cada número separado por um 0 dos adjacentes): 1, 3, 7, 15, 31, 63, 127, …

Ou seja, esta MT gera os números do tipo

y = 2x – 1

Conteúdo da fita após algumas iterações:

O que esta máquina faz?

Page 13: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Computabilidade Máquinas de Turing que não imprimem uma sequência

coerente de símbolos nem “param” são chamadas de circulares.

Conjectura de Church-Turing: todo algoritmo na forma como entendemos pode ser descrito por uma máquina de Turing.

Um passo importante para a demonstração de Turing foi representar as próprias MT na forma de sequências de símbolos de um alfabeto padronizado.

A descrição completa de uma MT, portanto, pode ser armazenada na fita ilimitada servindo como dado de entrada de uma outra máquina de Turing.

13

Page 14: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Computabilidade Máquina universal de Turing: capaz de reproduzir ou

imitar o comportamento de qualquer outra máquina de Turing, cuja descrição estaria armazenada em sua fita.

Consequência: ela pode gerar o conjunto completo de números computáveis.

Questão: seria possível projetar uma máquina de Turing que analisasse qualquer outra MT e decidisse se esta é circular ou não-circular?

Trata-se do problema da parada adaptado ao idioma de Turing.

14

Page 15: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Computabilidade Como Turing resolveu o problema da parada?

Vamos supor que exista um critério que nos permita identificar se uma máquina de Turing é ou não circular.

Toda máquina identificada como não-circular gera, portanto, uma sequência coerente de dígitos binários.

Vamos, então, preparar uma lista completa com os números (binários) que cada máquina de Turing confirmada como sendo não-circular gera.

15

Page 16: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Computabilidade Como Turing resolveu o problema da parada?

Seguindo o espírito do argumento diagonal de Cantor, vamos gerar uma nova sequência a partir dos elementos da diagonal.

16

1 0 0 1 1 1 0 1 …

1 1 0 1 1 0 0 0 …

0 1 0 1 0 1 0 1 …

1 0 1 1 1 1 1 0 …

1 1 1 1 1 1 1 0 …

0 0 0 0 1 0 0 0 …

0 1 1 1 0 0 1 0 …

0 0 1 1 0 1 1 1 …

Page 17: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Computabilidade Como Turing resolveu o problema da parada?

Sequência extraída:

Invertemos cada bit, obtendo:

17

1 1 0 1 1 0 1 1 …

0 0 1 0 0 1 0 0 …

1 0 0 1 1 1 0 1 …

1 1 0 1 1 0 0 0 …

0 1 0 1 0 1 0 1 …

1 0 1 1 1 1 1 0 …

1 1 1 1 1 1 1 0 …

0 0 0 0 1 0 0 0 …

0 1 1 1 0 0 1 0 …

0 0 1 1 0 1 1 1 …

Page 18: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Computabilidade Como Turing resolveu o problema da parada?

O método diagonal que descrevemos é apenas um processo algorítmico para o qual se poderia projetar uma máquina de Turing. Afinal, ele corresponde ao processo de computar para cada dígito x o valor (1 – x). Logo, a nova sequência de dígitos gerada obviamente é computável.

Contudo, por construção, ela é diferente de todas as sequências presentes na lista.

No entanto, por hipótese, a lista contém todas as sequências computáveis existentes, identificadas segundo o critério que admitimos que existia.

Chegamos, portanto, a uma contradição: a sequência gerada, embora seja computável, não pode estar na lista de sequências computáveis.

Conclusão: a suposição de que o critério existe é falsa.

18

Page 19: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Computabilidade Como Turing resolveu o problema da parada?

Turing foi além, concedendo uma demonstração alternativa de que o problema da parada não é computável.

Imagine que temos duas máquinas acopladas: uma máquina de decisão D, e uma máquina universal U, dando origem a uma nova máquina híbrida DU.

Ao receber a descrição de uma máquina genérica M, DU começa com as operações de D, determinando se M é ou não circular.

Se M for circular, o processo para.

Se M for não-circular, U pode ser utilizada para simular sua ação algorítmica.

Como U somente executa uma máquina M se ela garantidamente for não-circular, DU também é uma máquina não-circular..

19

Page 20: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Computabilidade Como Turing resolveu o problema da parada?

O que acontece se alimentarmos DU com sua própria descrição?

D determina que DU é uma máquina não-circular.

U passa, então, a simular a ação de DU, alimentando a descrição de DU em D, que, por sua vez, verifica que esta máquina é não-circular e, portanto, permite que U a simule.

Este ciclo se repete indefinidamente.

Logo, a máquina DU, quando alimentada com sua própria descrição, não para. Logo, DU é circular.

Porém, acabamos de verificar que DU é não-circular.

Diante desta contradição, Turing conclui: a máquina D não existe.

Dica: D. Leavitt, “O homem que sabia demais: Alan Turing e a invenção do computador”,

Editora Novo Conceito, 2011.

20

Page 21: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Computabilidade Exemplos de problemas não-computáveis:

Decidir se a resolução de um problema é livre de laços infinitos para qualquer conjunto de dados de entrada.

Verificar a equivalência de dois algoritmos para qualquer conjunto de dados de entrada.

21

Page 22: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Computabilidade Exemplos de problemas não-computáveis:

Problema do azulejo (tiling problem):

Um azulejo é um quadrado com orientação fixa no plano de interesse. O azulejo tem 4 cores – C1 a C4 – conforme abaixo:

O desafio é cobrir uma área quadrada finita com azulejos respeitando a restrição de que os azulejos devem se encostar no lado de mesma cor.

A entrada para este problema é um conjunto T composto por azulejos.

22

Page 23: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Computabilidade Exemplos de problemas não-computáveis:

Problema do azulejo (tiling problem):

Seja T o conjunto dos seguintes azulejos:

Desejamos preencher uma área de 5 × 5 azulejos.

Solução:

23

Page 24: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Computabilidade Exemplos de problemas não-computáveis:

Problema do azulejo (tiling problem):

Seja T o conjunto dos seguintes azulejos:

Desejamos preencher uma área de 3 × 3 azulejos.

Não é possível obter uma solução neste caso!

24

Page 25: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Computabilidade Exemplos de problemas não-computáveis:

Problema do azulejo (tiling problem):

Não há um algoritmo para resolvê-lo – já foi demonstrado que é um problema não-computável.

Note que este fato independe do programador e do computador.

25

Page 26: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Computabilidade Saber que um problema é computável é suficiente?

É importante que o algoritmo termine, isto é, execute o número finito de passos, em um tempo razoável.

26

Problema

Sei que ele é computável, ou seja, existe um algoritmo

para resolvê-lo.

Porém, sua solução é factível?

Para respondermos esta questão, precisamos conhecer a complexidade

do algoritmo.

Page 27: Equalização de Canais de Comunicação Baseada em Redes ...lboccato/topico_1.2_computabilidade.pdf · não para. Logo, DU é circular. Porém, acabamos de verificar que DU é não-circular

Créditos

27

Este material está baseado nas notas de aula elaboradas pelo Prof. Léo Pini e pelo aluno de doutorado Tiago Novaes.