Può Merlino convincere Arthur di una certa somma?


11

Merlino, che ha risorse computazionali illimitate, vuole convincere Arthur che per con e Il calcolo di questa somma in modo semplice (esponenziazione modulare e addizione) richiede tempo con moltiplicazione basata su FFT. * Ma Arthur può eseguire solo operazioni .

m|pN, p primepk
(N,m,k)k=O(logN)m=O(N).N(loglogN)2+o(1)O(N)

(Notazione, per compatibilità con le versioni precedenti di questa domanda: Sia la somma uguale a ; quindi la domanda è se è un numero intero.)mαα

Può Merlino convincere Arthur con una stringa di lunghezza ? In caso contrario, può convincere Arthur con una prova interattiva (la comunicazione totale, ovviamente, deve essere )? In tal caso, Merlino potrebbe usare una stringa di lunghezza ? Arthur potrebbe usare tempo?O(N)O(N)o(N)o(N)

Arthur non ha accesso al non determinismo o ad altri strumenti speciali (metodi quantistici, oracoli diversi da Merlino, ecc.) Ma ha spazio se necessario. Naturalmente Arthur non ha bisogno di calcolare direttamente la somma, deve solo essere convinto che una determinata tripla (N, m, k) rende l'equazione vera o falsa.O(N)

Si noti che con è possibile calcolare la somma nel tempo usando il metodo Lagarias-Odlyzko . Per la somma è superlineare e quindi non può essere memorizzata direttamente (senza, ad esempio, riduzione modulare) ma non è chiaro se esiste un algoritmo veloce.k=0k > 0O(N1/2+ε)k>0

Sarei anche interessato a qualsiasi algoritmo per calcolare la somma (modulare o altro) se non mediante alimentazione diretta e addizione.

* numeri da calcolare, ora per ogni calcolo.lg k log N ( log log N ) 1 + o ( 1 ) = log N ( log log N ) 2 + o ( 1 )N/logNlgklogN(loglogN)1+o(1)=logN(loglogN)2+o(1)



1
Sì, correlati. La differenza fondamentale è che la domanda math.SE presuppone che Merlin abbia zero risorse di calcolo e che questo presupponga che abbia risorse illimitate.
Charles

3
Che dire del tempo necessario per i test di primalità?
Peter Shor,

1
@Charles: non vedo che ridimensiona per contare i numeri primi. Puoi espellerlo? Avrei pensato che richiedesse un ridimensionamento superlineare. Il setaccio di Eratostene fornisce un algoritmo . O(N2)NO(N2)
Joe Fitzsimons,

1
L'algoritmo è dovuto a Lagarias & Odlyzko. Viene descritto, ad esempio, dtc.umn.edu/~odlyzko/doc/arch/analytic.pi.of.x.pdf (E non è ma ) ˜ O (O(N)O~(N).
Charles

Risposte:


7

Lo sto postando separatamente dal mio precedente caso speciale, perché credo che si tratti di un approccio diverso al problema e abbia poca relazione con la mia altra risposta. Potrebbe non essere esattamente quello che stai cercando, ma è semplice e si avvicina.

Esiste una prova che Arthur accetterà sempre quando la prova è corretta, ma rifiuterà con probabilità . Ecco come funziona: Merlin invia Arthur la coppia per ogni primo . Arthur verifica la somma (prendendo il tempo ). Arthur le verifiche che il numero corretto di numeri primi è stata fornita (calcolando ), che è sublineare in . Infine, per le coppie casuali , conferma che è primo e che . Questo richiede tempo (pi,ci=p k i  mod m)pNO(N/log(N))×O(log(N))=O(N)π(N)NSNpp k i1(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)). Prendendo , otteniamo un ridimensionamento temporale lineare. Pertanto, viene verificata una frazione di tutte le coppie. Se qualcuno di questi fallisce, Arthur ovviamente rifiuterà. Affinché Arthur accetti una prova errata, deve esserci almeno una coppia che non supera uno di questi due test (o il numero di coppie deve essere inferiore a che era stato precedentemente verificato). Così come frazione di tutte le coppie sono controllati, il test fallisce per una prova non corretto con probabilità almeno .S=(loglogN)(2+o(1))Sπ(N)SS

Si noti che per grandi dimensioni è molto meglio di un'ipotesi casuale, che ha successo con probabilità .N1m=1O(N)


Se pubblicare due risposte è una cattiva pratica, fammi sapere e le unirò. Li ho lasciati separati poiché quest'ultimo è venuto da me ed è un approccio completamente diverso rispetto alla prima risposta.
Joe Fitzsimons,

1
bene con me. specialmente nelle domande in CW è comune avere più risposte.
Suresh Venkat,

@Suresh: Sì, lo so, ma questo non è CW, e non voglio imbattermi in una prostituta.
Joe Fitzsimons,

2
Risposta molto bella. Massimizza entrambe le risorse: la stringa di Merlin è e Arthur usa il tempo . Nitpick: la verifica dei numeri primi individualmente richiederà troppo tempo per ottenere il tuo limite, ma ovviamente Arthur può generarli tutti e confrontarli con l'elenco di Merlino (richiedendo che sia in ordine). Θ(N)Θ(N)
Charles

1
@JoeFitzsimons: va bene :). se entrambe le risposte meritano una ripetizione otterrai doppi punti :)
Suresh Venkat

6

Questa è una risposta completa al problema che non utilizza affatto Merlin.

Deléglise-Dusart-Roblot [1] fornisce un algoritmo che determina il numero di numeri primi fino a che sono congruenti con modulo nel tempoUna modifica dell'algoritmo di Lagarias-Odlyzko [2] consente di calcolare lo stesso nel tempol k , O ( x 2 / 3 / log 2 x ) . O ( x 1 / 2 + o ( 1 ) ) .xlk,O(x2/3/log2x).O(x1/2+o(1)).

Usando uno dei due algoritmi, trova il numero di numeri primi in tutte le classi di residui mod primes fino a quando il loro prodotto è maggiore diPer ogni numero primo prendi il numero totale di numeri primi in ciascuna classe di residui per quella classe di residui alla -esima potenza; questo dà il valore di q , k p N p  prime p km.q,k

p primepNpk(modq).

Utilizzare il teorema del resto cinese per determinare il valore della somma mod23logm.

Secondo il Teorema dei numeri primi il primo più grande necessario è quindi questo fornisce la somma nel tempo(1+o(1))logm,O(N1/2+o(1)).

Riferimenti

[1] Marc Deléglise, Pierre Dusart e Xavier-François Roblot, Conteggio dei numeri primi nelle classi di residui , Matematica del calcolo 73 : 247 (2004), pp. 1565-1575. doi 10.1.1.100.779

[2] JC Lagarias e AM Odlyzko, Informatica : un metodo analiticoπ(x) , Journal of Algorithms 8 (1987), pp. 173-191.

[3] Charles, rispondi su MathOverflow . (Sì, questa è la stessa persona. Vedi le altre risposte lì per approcci diversi.)


5

Questa non è una risposta completa, ma piuttosto un caso speciale (per un valore maggiore di quanto si pensi), che avevo originariamente pubblicato come commento. Nel caso in cui (per un numero intero ) c'è una semplice prova e la stringa di Merlin può essere di lunghezza zero.k = x ϕ ( m ) xkk=xϕ(m)x

Per fare questo, Arthur calcola semplicemente . Questo può essere fatto fattorizzando (che può essere fatto in tempo sublineare in anche usando la divisione di prova). Poiché per tutti , e altrimenti, se allora abbiamo , dove è il numero di distinti divisori primi di . Come sottolineato nella sezione commenti può essere calcolato in tempo sublineare inϕ(m)mNpxϕ(m)0 mod mp|mpxϕ(m)1 mod mk=xϕ(m)pN,p primepkπ(N)y mod mymπ(N)N, e quindi questa somma può essere calcolata direttamente da Arthur.

Inoltre, per il caso speciale che la somma non può essere uguale a , come .m α 1 < π ( N ) < m1<N<mmα1<π(N)<m

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.