Referência para o algoritmo de fatoração ideal de Levin?

13

No " Conselho para um estudante de graduação iniciante ", de Manuel Blum :

LEONID LEVIN acredita, enquanto faço isso, qualquer que seja a resposta para P = NP? problema, não será como você pensa que deveria ser. E ele deu alguns exemplos maravilhosos. Por um lado, ele forneceu um algoritmo de fatoração que é comprovadamente ideal, até uma constante multiplicativa. Ele prova que, se seu algoritmo é exponencial, todo algoritmo para FACTORING é exponencial. Equivalentemente, se algum algoritmo de fatoração for poli-tempo, então seu algoritmo é poli-tempo. Mas não conseguimos dizer o tempo de execução de seu algoritmo porque, em um sentido forte, o tempo de execução não pode ser analisado.

A página de publicações de Levin retorna um 404, o DBLP não mostra nada relacionado ao fatoração e uma pesquisa por "leonid levin factoring" no Google Scholar não retorna nada de interesse que eu pudesse encontrar. AFAIK, a peneira generalizada, é o algoritmo mais rápido conhecido por fatoração. Do que Manuel Blum está falando? Alguém pode me vincular a um artigo?

Christopher Monsanto
fonte

Respostas:

11

Manuel Blum está falando sobre a aplicação do algoritmo de busca universal de Levin ao problema da Fatoração Inteira. A idéia do algoritmo de busca Universal de Levin é igualmente aplicável a qualquer problema na .NP

Aqui está uma citação das notas das palestras dadas por Blum sobre SEGURANÇA e CRIPTOGRAFIA:

O ALGORITMO ÓTIMO DE FACTORING DE NÚMERO DE LEVIN DE LEVIN. Deixe SPLIT denotar qualquer algoritmo que calcule INPUT: um número composto positivo (isto é, não primo) n. SAÍDA: um fator não trivial de n.

TEOREMA: Existe um algoritmo de divisão de número "ideal", que chamamos de OPTIMAL-SPLIT. Esse algoritmo é OPTIMAL no sentido de que: para todo SPLIT de algoritmo de divisão de números, existe uma constante C (bastante grande, mas fixa) tal que para cada entrada inteira composta positiva n, o "tempo de execução" de OPTIMAL-SPLIT na entrada n é no máximo C vezes o tempo de execução de SPLIT na entrada n.

Aqui está o algoritmo de fatoração ideal de Levin :

O ALGORITMO DE DIVISÃO OPTIMAL: INICIAR Enumere todos os algoritmos em ordem de tamanho, lexicograficamente em cada tamanho. Execute todos os algoritmos para que, a qualquer momento, t, o i-ésimo algoritmo obtenha [1 / (2 ^ i)] fração do tempo de execução. Sempre que um algoritmo pára com algum número inteiro de saída m no intervalo 1 <m <n, verifique se m divide n (isto é, se n mod m = 0). Nesse caso, retorne m. FIM

Mohammad Al-Turkistany
fonte
Alguém pode explicar por que a fração precisa ser 1 / (2 ^ i), mas não algo mais simples como 1 / i?
Netvope #
1
@ netvope: a soma infinita de 1 / i diverge. Você pode fazer isso com 1 / i ^ 2, mas 1/2 ^ i é muito mais simples.
Antimony
3

NPcoNP

Dado um número, queremos fatorar N.

N é primo? Se sim, imprima 'PRIME' else:

Eu=1 ...

P=1 ...Eu

Execute o programa P para i etapas com a entrada N

eu1M1N=euM(eu,M)

Artem Kaznatcheev
fonte
4
Você não pode usar um teste de primalidade conhecido porque não é conhecido por ser mais rápido que o fatorial ideal. Além disso, não entendo um ponto. Para provar que isso é ideal para fatorar até um fator constante, acho que temos que provar que a multiplicação na última etapa não é o termo dominante na complexidade do tempo. Se bem me lembro, o algoritmo de multiplicação mais rápido conhecido na configuração assintótica é baseado na FFT e leva tempo O (n log n log log n) para números inteiros de n bits. É possível provar que a fatoração ideal leva pelo menos tanto tempo quanto isso?
Tsuyoshi Ito
@ Tsuyoshi: Eu acho que você está certo, pois esse algoritmo falha em ser ideal se os testes de multiplicação / primalidade conhecidos forem mais difíceis do que fatorar. No entanto, se você leu a citação de Blum acima, ele diz apenas que o algoritmo de Levin é polinomial se e somente se for o ideal, o que soluciona esse problema. Duas outras coisas: (1) como você pode evitar o uso de um teste de primalidade conhecido nesse algoritmo? (2) acho que esse algoritmo não foi formulado corretamente, pois o tempo de execução não é particionado corretamente entre os diferentes programas; veja a resposta do Al-Turkistany para a formulação correta.
Peter Shor
@ Peter: Bem, a citação de Blum diz que "ele [Levin] deu um algoritmo de fatoração que é comprovadamente ideal, até uma constante multiplicativa". Mas considerando que nem sabemos se o fatoramento leva mais que o tempo linear ou não, a afirmação é difícil de acreditar como é.
Tsuyoshi Ito 29/04
@ Tsuyoshi: Entendo, eu estava lendo a citação errada de Blum.
quer