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: log2(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)
Soma: sistema unário de
numeração
3.....111
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)
Download

ppt - IFSC - Universidade de São Paulo