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)