GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de...

25
GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de Algoritmos: Computabilidade e Máquina de Turing Ilmério Reis da Silva [email protected] www.facom.ufu.br/~ilmerio/icc UFU/FACOM/BCC

Transcript of GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de...

Page 1: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

GBC015:INTRODUÇÃO À CIÊNCIA DA

COMPUTAÇÃOTeoria de Algoritmos:

Computabilidade e Máquina de Turing

Ilmério Reis da [email protected]/~ilmerio/iccUFU/FACOM/BCC

Page 2: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:2

Funções

Def. Função Matemática:

correspondência entre uma coleção de possíveis valores de entrada e uma coleção de valores de saída de forma que cada possível entrada receba uma única saída

Alternativas para representação de funções: – Tabela de valores– Gráfico– Equação– Algoritmo, por exemplo, Fatorial (N).

Page 3: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:3

Funções Computáveis

Def. Função Computável:

uma função é computável se existe um algoritmo que calcula os valores de saída à partir dos valores de entrada.

Exemplo: Fatorial (N)

Page 4: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:4

Teorema da incompletude de Gödel

Kurt Friedrich Gödel (1906-1978), Matemático, Filósofo

Alguns axiomas sobre os números não podem ser provados.

“se não existe algoritmo para um problema, então esse problema não é computável”.

Page 5: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:5

Representações/definições alternativas de Algoritmo

REPRESENTAÇÕES DE ALGORITMOS: Funções Matemáticas de Gödel Lambda Calculus de Church Máquina Abstrata de Alan Turing

Tese de Church-Turing: uma função computável pode ser computada pela Máquina de Turing Universal

ou Um algoritmo bem escrito pode ser convertido de

uma representação para outra

Page 6: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:6

Máquina de Turing

Alan Turing (1912-1954), Matemático, Cientista da Computação

Componentes da Máquina de Turing proposta em 1936

Fita infinita: dividida em células tais que cada cêlula contem um símbolo de um conjunto

Unidade de controle: possui um cabeçote de leitura e escrita na fita e um registro de estado

Programa: é uma sequência de passos executados pela Unidade de Controle.

Page 7: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:7

Representação da Máquina de Turing

De acordo com o programa, o cabeçote le/escreve na fita, se movimenta para direita ou esquerda e muda de estado

Page 8: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:8

Funcionamento da Máquina de Turing-MT

- Seja fita[p] um estado da MT na posição p da fita onde encontra-se gravado um símbolo (definimos dois tipos de estado especiais: um inicial e um ou mais finais)

- A MT começa no estado inicial, lê o símblo, grava um novo símbolo, movimenta de acordo com o programa e o símbolo lido, mudando de estado

- A MT pára quando o passo não estiver definido para o par: (símbolo debaixo do cabeçote, estado atual da máquina).

- Se a MT parar em um estado final, a computação teve êxito!!!

Page 9: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:9

Exemplo de MT para incrementar um valor no Sistema Binário

As instruções do programa são conforme Fig 12.3 de [1] abaixoA fita inicia com a cadeia binária e com * nas extremidades da cadeiaA cabeça de leitura inicia-se no estado START e posição do * à direitaSimule a computação para a entrada * 1 0 1 *

Page 10: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:10

Formalização de uma MT

Uma MT é uma quíntupla M = (Σ, Q, Π, q0, F)

onde: Σ = alfabeto Q = conjunto finito de estados Π = programa (ou função parcial de transição do tipo

Π: Q x Σ → Σ x {E, D, *} x Q), onde {E, D, *} significa a direção do movimento do cabeçote, a saber, Esquerda ou Direita ou Permanecer.

q0 = estado inicial F = conjunto de estados finais

Page 11: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:11

Exemplo de MT que Apaga uma String

Σ = {0, 1, ѣ} Q = {A} Π = {(A, 0, ѣ, D, A), (A, 1, ѣ, D, A) q0 = A F = {A}

Simule em uma folha de papel a execução iniciando na posição mais à esquerda da cadeia (string) 001010.

Veja simulador em: http://morphett.info/turing/turing.html

(acesso em outubro/2018)

Page 12: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:12

REPRESENTAÇÃO DE MT DIAGRAMA DE ESTADOSGRAFO DIRIGIDO- Nodos significam estados- Arcos rotulados significam transições

Page 13: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:13

EXEMPLO MT REPRESENTADA POR DIAGRAMAMT que devolve o complemento de uma cadeia

binária. Exemplo inicio 10101 término 01010

Page 14: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:14

Exercício de fixação

Escreva uma MT que copia uma cadeia de A's e B's à direita da sequência original

EXEMPLO: FITA DE ENTRADA: ABA FITA NO TERMINO: ABAABA

Page 15: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:15

MT e Computabilidade

Se um problema P é computável então há uma MT que resolve P e o inverso também é verdadeiro

Todos os problemas são computáveis?

Não, conforme mostramos a seguir

Page 16: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:16

O Problema da Parada da MT

É possível criar um programa que receba como parâmetro um programa qualquer P e um conjunto de dados qualquer D e detecte se P para ao processar D?

Page 17: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:17

O Problema da Parada da MT - EXEMPLO

O programa P=COLLATZ abaixo para? Dada uma entrada D igual a um número grande.

COLLATZ(inteiro N)ENQUANTO (N != 1) {

ESCREVA N;SE ((N % 2) == 0)

N N / 2;←SENAO

N N * 3 + 1;←}

Page 18: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:18

O Problema da Parada da MT - HALT

PROVA POR CONTRADIÇÃO: – Suponha que exista tal programa

chamado HALT– Então HALT pode ser escrito da seguinte

forma:

HALT(programa P, dados D) {SE (P para com D)

ESCREVA “para”SENAO

ESCREVA “loop”}

Page 19: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:19

O Problema da Parada da MT - CALL_HALT

Assumindo que uma entrada de dados pode ser o próprio programa, podemos escrever o programa CALL_HALT da seguinte forma:

CALL_HALT(programa P) {HALT(P, P)}

Page 20: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:20

O Problema da Parada da MT - NEW_HALT

Seja então NEW_HALT o seguinte programa: NEW_HALT(programa P) { SE (CALL_HALT(P) escreve “loop”)

PARE SENAO FIQUE EM LOOP

Page 21: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:21

O Problema da Parada da MT-A CONTRADIÇÃO

O que ocorre se chamarmos NEW_HALT passando como parametro o próprio NEW_HALT, ou seja,

NEW_HALT(NEW_HALT)?

Caso HALT(NEW_HALT, NEW_HALT) escreve “loop” então NEW_HALT PARA, portanto há uma contradição.

Caso contrário HALT(NEW_HALT, NEW_HALT) escreve “para” então NEW_HALT fica em LOOP, contradição

A única hipótese lançada, ou seja, “HALT existe”, leva-nos a uma contradição, portanto, HALT não existe!!

TEMOS ENTÃO UM PROBLEMA BEM ELABORADO QUE NÃO É COMPUTÁVEL!!!

Page 22: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:22

Considerações Finais

- Um problema que pode ser resolvido por uma MT pode ser implementado em qualquer computador e vice-versa.

- MT pode ser usada para reconhecer (ou aceitar) se uma cadeia de símbolos pertence a uma linguagem

- Existem variações de MT, por exemplo: MT Não determinísticas; MT com múltiplas fitas; etc.

- Há vários problemas não computáveis, por exemplo: Problema da parada Problema da totalidade: decidir se um programa

qualquer P sempre pára, independente da entrada.

Problema da equivalência: decidir se dois programas quaisquer P1 e P2 realizam a mesma computação

Page 23: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

Bibliografia

[1] BROOKSHEAR, J. Glenn. Ciência da computação: uma visão abrangente, ,tradução da 11a ed [por] Eduardo K Pivete, Porto Alegre, Bookman, 2013.

[2] FEDELI, Ricardo Daniel; POLLONI, Enrico Giulio Franco; PERES, Fernando Eduardo. Introdução à ciência da computação. 2. ed. São Paulo: Cengage Learning, 2010.

[3] MOKARZEL, Fábio Carneiro. Introdução à ciência da computação. Rio de Janeiro: Elsevier, 2008.

[4] Autran Macedo, Maria Adriana, Renato Pimentel e Ilmério Silva, http://www.facom.ufu.br

Page 24: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:24

Material de Apoio

Capítulo 12 de [1] Lista de exercícios

Page 25: GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de ...ilmerio/icc/ICC_A08_Algoritmos_Teoria1_MT.pdf · Funcionamento da Máquina de Turing-MT - Seja fita[p] um estado da MT

UFU/FACOM/BCC ICC Página:25

FIM Teoria de Algoritmos

Computabilidade e Máquina de Turing