Référence pour l'algorithme de factorisation optimale de Levin?


13

Dans les « Conseils à un étudiant débutant » de Manuel Blum :

LEONID LEVIN croit que je fais cela quelle que soit la réponse au P = NP? problème, ce ne sera pas comme vous le pensez. Et il a donné de merveilleux exemples. D'une part, il a donné un ALGORITHME DE FACTORISATION qui est de manière optimale optimale, jusqu'à une constante multiplicative. Il prouve que si son algorithme est exponentiel, alors chaque algorithme de FACTORING est exponentiel. De manière équivalente, si un algorithme de factorisation est le poly-temps, alors son algorithme est le poly-temps. Mais nous n'avons pas pu dire le temps d'exécution de son algorithme car, au sens fort, son temps d'exécution n'est pas analysable.

La page des publications de Levin renvoie un 404, DBLP ne montre rien lié à l'affacturage, et une recherche de "leonid levin factoring" sur Google Scholar ne renvoie rien d'intéressant que j'ai pu trouver. AFAIK le tamis généralisé est l'algorithme le plus rapide connu pour l'affacturage. De quoi parle Manuel Blum? Quelqu'un peut-il me lier à un document?

Réponses:


11

Manuel Blum parle de l'application de l'algorithme de recherche universel de Levin au problème de la factorisation entière. L'idée de l'algorithme de recherche universelle de Levin est également applicable à tout problème .NP

Voici une citation des notes de cours données par Blum sur la SECURITE et la CRYPTOGRAPHIE:

ALGORITHME OPTIMAL DE RÉPARTITION DU NOMBRE (FACTEUR) DE Leonid LEVIN. Soit SPLIT tout algorithme qui calcule INPUT: un entier composite positif (c'est-à-dire non premier) n. SORTIE: un facteur non trivial de n.

THÉORÈME: Il existe un algorithme de fractionnement de nombres "optimal", que nous appelons OPTIMAL-SPLIT. Cet algorithme est OPTIMAL en ce sens que: pour chaque algorithme de fractionnement de nombres SPLIT il y a une constante C (assez grande mais fixe) telle que pour chaque entrée entière positive composée n, le "temps d'exécution" de OPTIMAL-SPLIT sur l'entrée n est au plus C fois le temps d'exécution de SPLIT sur l'entrée n.

Voici l'algorithme de factorisation optimal de Levin :

ALGORITHME OPTIMAL-SPLIT: BEGIN Énumérer tous les algorithmes par ordre de taille, lexicographiquement dans chaque taille. Exécutez tous les algorithmes de sorte qu'à tout moment dans le temps, t, le ième algorithme obtienne [1 / (2 ^ i)] fraction du temps à exécuter. Chaque fois qu'un algorithme s'arrête avec un certain nombre entier de sortie m dans la plage 1 <m <n, vérifiez si m divise n (c'est-à-dire si n mod m = 0). Si oui, retournez m. FIN


Quelqu'un peut-il expliquer pourquoi la fraction doit être 1 / (2 ^ i) mais pas quelque chose de plus simple comme 1 / i?
netvope

1
@netvope: la somme infinie de 1 / i diverge. Vous pourrez peut-être le faire avec 1 / i ^ 2 mais 1/2 ^ i est beaucoup plus simple.
Antimony

3

Je ne sais pas si c'est de cela que parlait Blum, mais il est facile de faire un algorithme optimal jusqu'à un facteur constant pour presque NPcoNPproblème. Voici un croquis pour l'affacturage en particulier.

Étant donné un nombre, nous voulons factoriser N.

N est-il premier? Si c'est le cas, affichez 'PRIME' sinon:

Pour je=1...

Pour P=1...je

Exécuter le programme P pour i étapes avec l'entrée N

Si P sort deux entiers (L, M) et L1 et M1 et N=LM puis sortie (L,M)


4
Vous ne pouvez pas utiliser un test de primalité connu car il n'est pas connu pour être plus rapide que l'affacturage optimal. Outre cela, je ne comprends pas un point. Pour prouver que cela est optimal pour factoriser jusqu'à un facteur constant, je pense que nous devons prouver que la multiplication dans la dernière étape n'est pas le terme dominant dans la complexité temporelle. Si je me souviens bien, l'algorithme de multiplication le plus rapide connu dans le cadre asymptotique est basé sur la FFT et prend le temps O (n log n log log n) pour les entiers de n bits. Est-il possible de prouver que l'affacturage optimal prend au moins aussi longtemps que cela?
Tsuyoshi Ito le

@Tsuyoshi: Je pense que vous avez raison en ce que cet algorithme n'est pas optimal si les tests de multiplication / primalité connus sont plus difficiles que l'affacturage. Cependant, si vous lisez la citation de Blum ci-dessus, il dit seulement que l'algorithme de Levin est polynomial si et seulement si l'optimal est, ce qui met fin à ce problème. Deux autres choses: (1) comment pourriez-vous éviter d'utiliser un test de primalité connu dans cet algorithme? (2) Je pense que cet algorithme n'est pas formulé tout à fait correctement dans la mesure où le temps d'exécution n'est pas correctement partitionné entre les différents programmes; voir la réponse d'Al-Turkistany pour la bonne formulation.
Peter Shor

@Peter: Eh bien, la citation de Blum dit "il [Levin] a donné un ALGORITHME DE FACTEUR qui est prouvablement optimal, jusqu'à une constante multiplicative". Mais étant donné que nous ne savons même pas si l'affacturage prend plus que du temps linéaire ou non, l'énoncé est difficile à croire tel quel.
Tsuyoshi Ito

@Tsuyoshi: Je vois, je lisais la mauvaise citation de Blum.
Peter Shor
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.