ppt - IFSC - Universidade de São Paulo

Download Report

Transcript ppt - IFSC - Universidade de São Paulo

Complexidade computacional: Shannon e Turing

01 de Junho de 2012 José Roberto C. Piqueira [email protected]

Claude E. Shannon 30/04/1916 – 24/02/2001 Doutorado (MIT-1937): Circuitos Elétricos-Álgebra de Boole Criptografia e quebra de códigos (Segunda Guerra) Teoria da Informação (1948)

Alan Turing 23/06/1912 – 27/06/1954 Formalização do conceito de algoritmo Quebra do código dos alemães durante a segunda guerra Depois da guerra: Manchester University 1952: prisão por homossexualismo, castração química, suicídio (1954)

Medida da Informação (Shannon) • • Abordagem probabilística Fonte ....Canal...Receptor

• Informação individual: log 2 (1/p) • Entropia informacional: esperança matemática da informação individual • Capacidade do Canal • Exemplo (lousa)

Entropia máxima

Entropia Algorítmica O foco não é a fonte e a distribuição de probabilidade de todas as sequencias possíveis Interessa uma sequencia particular “x”

Ideias básicas • Complexidade K(x): menor comprimento do programa capaz de gerar a sequencia x; • Conjunto finito de instruções com comprimento |q(x)| bits; • O programa pode ser implementado por uma máquina de Turing.

• min |q(x)| = K(x)

Máquina de Turing

Máquina de Turing • Fita com uma cabeça de leitura e uma de escrita • Fita: comprimento infinito, sucessão de células de memória (0 ou 1) • Células não escritas ou tornadas brancas= 0 • A fita pode ser movida para esquerda ou para a direita, uma célula por vez

Controle da máquina de Turing • Operações da cabeça e da fita são definidas por uma tabela de instruções {I1, I2,.....In}, chamada tabela de ação • Exemplo: s1;0....1;L;S3 » s2;1....0;R;S2

Tabela de Ação (Exemplo) • Criar a sequencia 11011 a partir da sequencia vazia

Programa (Exemplo)

3.....111

Soma: sistema unário de numeração 7.....1111111

3+7....1111111111

Delimitador.....0

3 + 7........11101111111.......sequencia inicial

Soma: tabela de ação

Soma: programa

Programas e simuladores • www.ams.org

• http://ironphoenix.org/tril/tm

Multiplicação e divisão Qualquer multiplicação de números de comprimento finito pode ser realizada O programa de divisão permite mudanças de base Parece que qualquer número é computável em uma máquina de Turing (falso)

Comprimento computacional Número de estados definidos pela tabela de ação: medida da complexidade do algoritmo Noção de comprimento computacional: Dados dois números de comprimento n, quantas transições são necessárias para multiplicá-los? (Próxima figura)

Tese de Church-Turing Uma máquina de Turing é capaz de resolver todos os problemas solucionáveis por um algoritmo ou um método de computação efetivo (volta ao slide 7)