Merlin peut-il convaincre Arthur d'une certaine somme?

11

Merlin, qui a des ressources informatiques illimitées, veut convaincre Arthur que

m|pN, p primepk
pour (N,m,k) avec k=O(logN) et m=O(N). Le calcul simple de cette somme (exponentiation modulaire et addition) prend du temps N(loglogN)2+o(1) avec une multiplication basée sur FFT. * Mais Arthur ne peut effectuer que des opérationsO(N).

(Notation, pour la compatibilité avec les versions antérieures de cette question: Soit la somme égale à mα ; alors la question est de savoir si α est un entier.)

Merlin peut-il convaincre Arthur avec une chaîne de longueur O(N) ? Sinon, peut-il convaincre Arthur avec une preuve interactive (la communication totale, bien sûr, doit être O(N) )? Si oui, Merlin pourrait-il utiliser une chaîne de longueur o(N) ? Arthur pourrait-il utiliser le temps o(N) ?

Arthur n'a pas accès au non-déterminisme ou à d'autres outils spéciaux (méthodes quantiques, oracles autres que Merlin, etc.) mais dispose d'un espace O(N) si nécessaire. Bien sûr, Arthur n'a pas besoin de calculer la somme directement, il doit simplement être convaincu qu'un triple donné (N, m, k) rend l'équation vraie ou fausse.

On notera que avec , il est possible de calculer la somme en temps O ( N 1 / deux + ε ) en utilisant le Lagarias-Odlyzko procédé. Pour k > 0, la somme est superlinéaire et ne peut donc pas être stockée directement (sans, par exemple, une réduction modulaire) mais il n'est pas clair s'il existe un algorithme rapide.k=0O(N1/2+ε)k>0

Je serais également intéressé par tout algorithme pour calculer la somme (modulaire ou autre) autrement que par alimentation directe et addition.

* nombres à calculer, temps lg k log N ( log log N ) 1 + o ( 1 ) = log N ( log log N ) 2 + o ( 1 ) pour chaque calcul.N/logNlgklogN(loglogN)1+o(1)=logN(loglogN)2+o(1)

Charles
la source
1
Poste connexe sur Math.SE .
Hsien-Chih Chang 張顯 之
1
Oui, lié. La principale différence est que la question math.SE suppose que Merlin n'a aucune ressource de calcul et que celle-ci suppose qu'il a des ressources illimitées.
Charles
3
Qu'en est-il du temps nécessaire pour le test de primalité?
Peter Shor
1
@Charles: Je ne vois pas ça Mise à l'échelle N pour compter les nombres premiers. Pouvez-vous l'exposer? J'aurais pensé qu'il fallait une mise à l'échelle super-linéaire. Le tamis d'Ératosthène donne unalgorithmeO(N2). NO(N2)
Joe Fitzsimons
1
L'algorithme est dû à Lagarias & Odlyzko. Il est décrit, par exemple, dtc.umn.edu/~odlyzko/doc/arch/analytic.pi.of.x.pdf (Et ce n'est pas mais ˜ O (O(N))O~(N).
Charles

Réponses:

7

Je poste ceci séparément de mon cas spécial précédent, parce que je pense que c'est une approche différente du problème et a peu de rapport avec mon autre réponse. Ce n'est peut-être pas exactement ce que vous cherchez, mais c'est simple et ça se rapproche.

1(loglogN)2+o(1)(pi,ci=pik mod m)pNO(N/log(N))×O(log(N))=O(N)π(N)NSNppikci mod mSN O((loglogN)2+o(1))S=(loglogN)(2+o(1))Sπ(N)SS

N1m=1O(N)

Joe Fitzsimons
la source
Si poster deux réponses est une mauvaise pratique, faites-le moi savoir et je les fusionnerai. Je les ai laissés séparés car ce dernier vient de venir à moi et est une prise complètement différente de la première réponse.
Joe Fitzsimons
1
ça me va. en particulier dans les questions CW, il est courant d'avoir plusieurs réponses.
Suresh Venkat
@Suresh: Oui, je sais, mais ce n'est pas CW, et je ne veux pas apparaître comme une putain de représentant.
Joe Fitzsimons
2
Θ(N)Θ(N)
1
@JoeFitzsimons: ça va :). si les deux réponses méritent d'être représentées, vous obtiendrez le double de points :)
Suresh Venkat
6

C'est une réponse complète au problème qui n'utilise pas du tout Merlin.

xlk,O(x2/3/log2x).O(x1/2+o(1)).

m.q,k

p primepNpk(modq).

Utilisez le théorème du reste chinois pour déterminer la valeur de la somme mod23logm.

D'après le théorème des nombres premiers, le plus grand nombre premier nécessaire est ce qui donne la somme dans le temps(1+o(1))logm,O(N1/2+o(1)).

Références

[1] Marc Deléglise, Pierre Dusart et Xavier-François Roblot, Counting prime in residues classes , Mathematics of Computation 73 : 247 (2004), pp. 1565-1575. doi 10.1.1.100.779

[2] JC Lagarias et AM Odlyzko, Computing : An analytic methodπ(x) , Journal of Algorithms 8 (1987), pp. 173-191.

[3] Charles, réponse sur MathOverflow . (Oui, c'est la même personne. Voir les autres réponses pour différentes approches.)

Charles
la source
5

Ce n'est pas une réponse complète, mais plutôt un cas spécial (pour une valeur de supérieure à celle que vous considérez), que j'avais initialement publié en tant que commentaire. Dans le cas où (pour un entier ), il existe une preuve simple et la chaîne de Merlin peut être de longueur nulle.kk=xϕ(m)x

Pour ce faire, Arthur calcule simplement . Cela peut être fait en factorisant (ce qui peut être fait en temps sublinéaire en même en utilisant la division d'essai). Puisque pour tout , et sinon, si alors nous avons , où est le nombre de diviseurs premiers de . Comme indiqué dans la section commentaire, peut être calculé en temps sublinéaire enϕ(m)mNpxϕ(m)0 mod mp|mpxϕ(m)1 mod mk=xϕ(m)pN,p primepkπ(N)y mod mymπ(N)N, et donc cette somme peut être directement calculée par Arthur.

De plus, dans le cas particulier où la somme ne peut pas être égale à , comme .m α 1 < π ( N ) < m1<N<mmα1<π(N)<m

Joe Fitzsimons
la source