Scambia tra tempo e complessità delle query


18

Lavorare direttamente con complessità temporale o limiti inferiori del circuito è spaventoso. Quindi, sviluppiamo strumenti come la complessità della query (o la complessità dell'albero decisionale) per ottenere una gestione sui limiti inferiori. Poiché ogni query richiede almeno un passaggio unitario e i calcoli tra le query vengono considerati gratuiti, la complessità temporale è almeno pari alla complessità della query. Tuttavia, possiamo dire qualcosa sulle separazioni?

Sono curioso di lavorare nella letteratura classica o quantistica, ma fornisco esempi dal controllo qualità poiché ho più familiarità.

Alcuni algoritmi famosi come la ricerca di Grover e la ricerca del periodo di Shor, la complessità temporale è all'interno di fattori poliarlogaritmici della complessità della query. Per altri, come il problema del sottogruppo nascosto, abbiamo una complessità di query polinomiale , ma non sono noti algoritmi temporali polinomiali.

Poiché esiste potenzialmente un divario tra tempo e complessità della query, non è chiaro che un algoritmo di complessità temporale ottimale deve avere la stessa complessità di query dell'algoritmo di complessità di query ottimale.

Esistono esempi di compromessi tra tempo e complessità della query?

Esistono problemi in cui l'algoritmo di complessità temporale più noto presenta una complessità di query diversa rispetto all'algoritmo di complessità di query più noto? In altre parole, possiamo eseguire più query per semplificare le operazioni tra query?

Oppure c'è un argomento che mostra che esiste sempre una versione di un algoritmo di query asintoticamente ottimale che ha un'implementazione con la migliore complessità temporale asintoticamente?


Vuoi un problema naturale o va bene anche un problema artificiale?
Robin Kothari,

2
I problemi naturali sono preferiti, ma i problemi artificiali sono meglio di nessuna risposta.
Artem Kaznatcheev

Risposte:


9

Ecco un tentativo di creare una funzione artificiale con la seguente proprietà:

  • Il problema può essere risolto con query , ma richiede exp ( n ) time.O(logn)exp(n)
  • Il problema può essere risolto con tempo ma ciò richiede query O ( n )O(n)O(n)

Lascia che la dimensione di input sia . Consenti ai primi log n bit (chiamiamo questa stringa x) di codificare l'input in un problema completo per EEXP. I successivi n bit (chiamiamo questa stringa y) hanno la proprietà che sono tutti zero se e solo se x è un'istanza NO del problema completo di EEXP.n+lognlognn

In parole, i primi n bit di codificano un problema difficile e i successivi n bit forniscono un indizio sulla soluzione del problema. Tuttavia, per capire la soluzione osservando la stringa n bit si eseguono Ω ( n ) query.lognnnΩ(n)

Quindi questo problema può essere risolto leggendo solo i primi n e spendendo tempo exp (n) o leggendo n bit e usando solo il tempo lineare.lognn

La stessa funzione è valida per la complessità delle query quantistiche. Inserire segni di radice quadrata dove necessario.


7

Una versione più estrema dell'esempio di Robin:

Lascia che la dimensione di input sia , con il primo n - 1nn1 bit (chiama questa stringa ) che codifica una macchina di Turing T x . Correggi alcune funzioni f ( n ) . Lascia che l'ultimo bit della stringa sia 1 se la macchina di Turing T x si ferma in meno di f ( n ) passi. Il problema è quindi determinare se T x si ferma in meno di f ( n ) passi e la parità di x è pari.xTxf(n)1Txf(n)Txf(n)x

Pertanto, eseguendo query il problema può essere risolto nel tempo O ( f ( n ) ) , mentre effettuando n query, il problema può essere risolto nel tempo O ( n ) .n1O(f(n))nO(n)


Probabilmente intendevi che l'ultimo bit fosse tale che la parità di x è anche se la macchina di Turing si ferma nel tempo (altrimenti la domanda richiede solo una query;)). Questo è carino e può essere modificato per dare qualsiasi tipo di separazione tra tempo e query. Considerare che qualsiasi bit di funzione sia tale che la parità di x sia pari anche se T x si ferma in meno di f ( n ) e g ( n ) < n , quindi lascia che i primibit g ( n ) di x siano una descrizione di un tornio. Lascia l'altro n - g ( n ) di xg(n)=ω(1)g(n)<ng(n)xng(n)xxTxpassi > n . Quindi abbiamo una g ( n ) contro n query al costo di Θ ( f ( n ) ) contro n nel tempo. f(n)>ng(n)nΘ(f(n))n
Artem Kaznatcheev

Ignora la prima frase del mio commento precedente.
Artem Kaznatcheev

7

Mi piace la risposta di Robin Kothari e la modifica di Joe Fitzsimons. In un'ovvia estensione delle loro risposte possono ottenere qualsiasi rapporto di separazione (tranne costante contro non costante) tra la complessità della query sempre più piccola e la complessità del tempo sempre più grande. Tuttavia, non esiste un modo ovvio per rendere le loro funzioni non parziali. Voglio sottolineare un problema naturale in cui abbiamo una separazione e mostrare che le grandi separazioni sono più difficili per le funzioni totali.


Un problema naturale

Ben Reichardt ha segnalato via e-mail il problema della valutazione della formula. La complessità della query quantistica per la valutazione di una formula AND-OR di lettura generale su variabili è Θ ( n. Tuttavia, laO(Θ(n)algoritmo di query non è efficiente in termini di tempo. Qui, viene mostrato l'algoritmo più veloce noto per rendereO(O(n)query ed esecuzione nel tempo pollogaritmicamente peggio. Quindi abbiamo un problema totale naturale in cui esiste una separazione nota. Sebbene non vi siano prove che questa separazione debba esistere.O(nlogn)

Le funzioni totali sono più difficili da separare?

Per me, sembra che sia più difficile trovare funzioni totali con separazioni dimostrabili. Per mostrare che il caso delle funzioni totali e parziali è diverso, fornirò un argomento sulla più grande separazione tra le complessità delle query degli algoritmi query-ottimale e tempo-ottimale per una funzione totale.

Usando il limite inferiore di Simon [1] possiamo vedere che se una funzione dipende da m delle sue variabili, dovremo interrogare almeno di esse. D'altra parte, il massimo che potremmo mai interrogare è m . Si noti che non vi è motivo di interrogare tutte le n variabili, poiché l'output è indipendente da n - m di esse (chiamare quei bit morti) e per una funzione totale non verrà rivelata alcuna struttura segreta osservando quei bit morti. Così anche i più algoritmo tempo ottimale per una funzione totale può essere modificato per utilizzare al massimo m query semplicemente supponendo che i bit morti sono tutti 0 .Ω(logm)mnnmm0

(query complexity,time complexity)(q1(n),t1(n))(q2(n),t2(n))q2(n)f(q1(n))f(n)=O(2n)

[1] HU Simon, "Una stretta Z (loglogn) legata al tempo per le RAM parallele di calcolare funzioni booleane non degenerate", in: Symp. sui fondamenti della teoria del calcolo, Appunti delle lezioni in informatica, vol. 158, Springer, Berlino, 1983, pp. 439-444.

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.