I circuiti di dimensioni quasi polinomiali per 3-SAT sono banali?


10

Supponiamo di considerare 3-SAT con variabili e clausole . Sto cercando un metodo che sembra impiegare tempo / spazio per risolvere qualsiasi problema di SAT che si adatta a questa descrizione, all'interno di un errore che può essere regolato su una quantità arbitraria. Tuttavia, c'è un problema.c O ( v 2 + log c )vcO(v2+logc)

Questo metodo richiede una serie di valori pre-calcolati, dopo di che può risolvere un problema 3-SAT arbitrario che si adatta alla descrizione sopra. I valori pre-calcolati sono un set di dimensioni con ogni valore che occupa spazio . Il vero problema è che ciascuno di questi valori potrebbe richiedere per il calcolo. C'è la possibilità che io possa trovare un modo per accelerare questi calcoli.O ( 1 ) O ( 2 v )O(v2+logc)O(1)O(2v)

Sto pensando che i limiti stessi battano i limiti superiori presentati in questa domanda (per la piccola ). Quindi mi chiedo, c'è un modo banale per raggiungere i limiti superiori che descrivo se consentiamo pre-calcoli ?O ( v 2 + log c )cO(v2+logc)

Mi piacerebbe continuare questa ricerca e spero di pubblicare i miei risultati se tutto funziona, ma prima vorrei sapere se esiste un modo banale di fare altrettanto o meglio.


AGGIORNARE

Ho studiato problemi correlati oltre a ricercare questo algoritmo. Ho posto questa domanda sul sito di sicurezza IT di StackExchange relativo al crack delle password e al SAT, se sei interessato. Almeno una delle risposte riflette questo.


Dici che richiede O (N ^ 2 + logc) tempo / spazio ... Quindi non è in PSPACE? Ma in QSPACE (Quasi-Space)?
Tayfun paga il

@Tayfun Pay: funziona in . È un algoritmo deterministico che dà a un risultato modulo un primo (si noti che questo risultato è sufficiente per il resto dell'algoritmo per determinare un compito soddisfacente). Può essere eseguito per qualsiasi numero primo. Correre per più di un numero primo aumenta le possibilità di trovare un incarico soddisfacente. Ha la possibilità di trovare un incarico soddisfacente, se ne esiste uno, di . p ( p - 1 ) / pO(v(2+logc))p(p1)/p
Matt Groff,

Ha bisogno di O (N ^ (2 + log (c))) SPACE?
Tayfun paga il

@Tayfun Pay: Sì. Non ho ancora trovato un modo per ridurre le considerazioni sullo spazio.
Matt Groff,

1
Proporrei di cambiare il titolo in uno più appropriato. Il titolo attuale non sembra attraente, mentre la domanda stessa lo è.
Yoshio Okamoto,

Risposte:


16

Se quello che stai studiando ha funzionato, sicuramente non sarebbe banale.

Implicherebbe che 3SAT ha circuiti (non uniformi) di dimensioni . Quindi, ogni linguaggio in (e la gerarchia temporale polinomiale) avrebbe circuiti di dimensioni quasi polinomiali (cioè ). N P n O ( log c n )nO(logn)NPnO(logcn)

Anche se ci sono voluti tempo di preelaborazione per produrre una struttura di dati di dimensioni solo che potrebbe quindi rispondere correttamente a query 3SAT arbitrarie di dimensione in tempo randomizzato con alta probabilità, 3SAT avrebbe circuiti di dimensioni quasi polinomiali, usando la traduzione nota di algoritmi randomizzati in circuiti. Ciò non migliorerebbe i limiti di tempo noti dell'algoritmo a causa della preelaborazione, ma sarebbe comunque estremamente interessante come risultato non uniforme. 2 O ( log 2 n ) n 2 O ( log 2 n )22n2O(log2n)n2O(log2n)

Cosa intendi con "all'interno di un errore che può essere regolato su un importo arbitrario"? L'algoritmo è randomizzato?


:Grazie per la tua risposta. L'algoritmo non è randomizzato. Il tempo di esecuzione effettivo dell'algoritmo stesso non è così semplice come l'ho descritto. In sostanza, tuttavia, possiamo eseguirlo attraverso ripetute esecuzioni per eliminare l'errore. Quindi se lo eseguiamo volte, la probabilità di errore sarebbe ridotta al di sotto di . Esito a rivelare i dettagli perché sono preoccupato che rivelerà troppo sull'algoritmo. 1 / ( 2 x )x1/(2x)
Matt Groff,

3
In che modo l'algoritmo non può essere randomizzato, ma è possibile eseguirlo ripetutamente per ridurre l'errore? Penso che probabilmente dovresti fornire almeno qualche dettaglio in più per capire la tua domanda.
Ryan Williams,

2
Il suo algoritmo è tale che (se funziona), per ogni primo , se il numero di assegnazioni soddisfacenti non è un multiplo di l'algoritmo trova un'assegnazione soddisfacente. Si riferisce (erroneamente) a quello come "un cambiamento nel trovare un incarico soddisfacente, se ne esiste uno, di ." Se la dipendenza del runtime da non è enorme, allora si ottengono circuiti (deterministici) di dimensioni quasi polinomiali per SAT. ppp(p1)/pp

La fase di preelaborazione richiede . Posso avere un riferimento a "la traduzione conosciuta di algoritmi randomizzati in circuiti"? Quindi, se si desidera ridurre l'errore, è necessario eseguire la preelaborazione volte. Dubito che questo possa essere tradotto in un quasi circuito. Che vantaggio avrà questo rispetto a un banale algoritmo? npn
Zirui Wang,

BPPP/poly3/4100n2O(log2n)1/2n
Ryan Williams,

3

Non so se il tuo risultato - se valido - sarebbe un progresso non banale, ma qui c'è un tipo di problema su cui potresti provarlo:

f:{0,1}n{0,1}ny{0,1}nx{0,1}nf(x)=y

f

f2n22n/322n/3xy22n/322n/3STST=2nff

f

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.