Migliori limiti superiori su SAT


43

In un'altra discussione , Joe Fitzsimons ha chiesto "i migliori limiti inferiori attuali su 3SAT".

Mi piacerebbe andare dall'altra parte: qual è il miglior limite superiore attuale su 3SAT? In altre parole, qual è la complessità temporale del solutore SAT più efficiente?

In particolare, è concepibile trovare un algoritmo sub-esponenziale (ma super polinomiale) per SAT?


2
Non conosco i risultati analitici, ma puoi trovare risultati sperimentali qui baldur.iti.uka.de/sat-race-2010/results.html (vedi i collegamenti "HTML")
Radu GRIGore

1
questo titolo della domanda è un po 'fuorviante, a causa dell'esistenza di questa domanda: cstheory.stackexchange.com/questions/1295/sat-solver-download . Penso che potresti riformulare come "Best Upper Bounds on SAT"?
Suresh Venkat,

@Suresh: la domanda a cui ti riferisci riguarda "#SAT", mentre questa corrisponde a SAT. Inoltre, quella domanda è stata posta circa una settimana dopo questa. Comunque, suggerisci ancora di cambiare il titolo di questi?
MS Dousti,

sì, perché un "Risolutore SAT" è un oggetto ben noto specifico - una base di codice reale per risolvere SAT. Google diventerà confuso e reindirizzerà le persone alla ricerca di codice qui :).
Suresh Venkat,

4
Per quanto riguarda la motivazione di questa domanda, ho pensato che diverse persone avessero provato i solutori SAT sui casi 17x17. Sembra essere la frontiera di ciò che può essere gestito con un solutore SAT. Potresti invece provare un risolutore parallelo, ma mi è sembrato che, sulla base dei post di Bill Gasarch, avresti avuto bisogno di uno sforzo su larga scala. È inoltre possibile applicare un risolutore SMT con una teoria adeguata o utilizzare un risolutore di vincoli che implementa un vincolo globale con un propagatore efficiente. In ciascuno di questi casi la nuova idea sarebbe quella di esprimere una proprietà importante che è difficile da fare usando clausole.
András Salamon,

Risposte:


38

Esistono due tipi di solutori SAT "migliori", uno per la teoria e uno per la pratica.

Teoria

randomizzato per 3SAT.O(1.32113n)

randomizzato per 3SAT.O(1.321n)

deterministico per 3SAT.O(1.439n)

Pratica

Controlla la conferenza SAT per i risultati della competizione per ogni anno.


Ho trovato un collegamento a Iwama et al. carta . Quindi, davvero il risultato più recente e migliore per la risoluzione di SAT fino ad ora? O(1.32113n)
MS Dousti,

@ Sadeq: penso di sì, ma solo per 3-SAT, non SAT.
Tian Liu,

2
Ora il miglior algoritmo è in tempo da Timon Hertli, Robin A. Moser e Dominik Scheder. O(1.321n)
Tian Liu,

10
Ancora un altro aggiornamento: in FOCS 2011, Timon Hertli ( arxiv.org/abs/1103.2165 ) ha dimostrato che l'algoritmo PPSZ risolve ogni istanza 3SAT in volta. 1.308n
Ryan Williams

21

Non sono a conoscenza di algoritmi randomizzati a errore zero (o algoritmi coNE / Eadvice ,
per quel che riguarda) per SAT che hanno limiti migliori rispetto agli algoritmi deterministici noti,
indipendentemente dal fatto che ci sia o meno promesso di essere al massimo un compito soddisfacente.


"Il problema 3-SAT è risolvibile in modo deterministico nel tempo ."O(1.3303n)


"Per un 3-CNF straordinariamente soddisfacente (resp. 4-CNF) su variabili, l'assegnazione soddisfacente può essere trovata nel tempo di esecuzione deterministico al massimo (resp. ). "On
OO(1.3071n)O(1.4699n)


  1. "Esiste un algoritmo randomizzato per 3-SAT con
    errore unilaterale che viene eseguito nel tempo ." O(1.30704n)
  2. "Esiste un algoritmo randomizzato per 4-SAT con
    errore unilaterale che viene eseguito nel tempo ."O(1.46899n)


"Esiste un algoritmo randomizzato per unique-3-SAT tale che per e il numero reale che consente al limite di runtime del documento precedente per 3-SAT di essere espresso come , della carta corrente piste algoritmo in tempo . "ϵ=1/(1024)
S
O(2(S+o(1))n)O(2(Sϵ+o(1))n)



16

L'algoritmo di Schoening è un algoritmo probabilistico per k-SAT con tempo di esecuzione , dove . Ciò si traduce in un algoritmo per 3SAT, un algoritmo per 4SAT, ecc.O(an)a=2(k1)/kO(1.33334n)O(1.5n)

L'algoritmo è stato anche (quasi completamente) derandomizzato da Moser e Scheder, che forniscono un algoritmo deterministico per risolvere il tempo di esecuzione kSAT dove è la stessa costante di prima, e può essere reso arbitrariamente piccolo.O((a+ϵ)n)aϵ>0

Nota: in questa risposta la grande notazione Oh nasconde i poli (n) fattori. Volevo usare la notazione , ma non viene visualizzata correttamente.O


1
Perché dici "quasi completamente"? Mi sono perso qualcosa sul giornale?
András Salamon,

1
Esiste un algoritmo deterministico per k-SAT da otto persone, quindi ti prego di perdonarmi di non menzionarli tutti. Ecco il link: linkinghub.elsevier.com/retrieve/pii/S0304397501001748 . Quindi per abbiamo e non è buono come altri limiti per 3-SAT presentati qui, ma per k-SAT è il migliore, per quanto ne so. k=3O(1,5n)O((22k+1)n)k=3O(1.5n)
Grigory Yaroslavtsev

4
Ho detto "quasi completamente" solo per indicare che c'è un fattore epsilon lì. Immagino che ci si aspetterebbe che una derandomizzazione completa raggiunga lo stesso tempo di esecuzione (fino a fattori polinomiali). O forse è irragionevole aspettarsi.
Robin Kothari,

1
@Grigory Yaroslavtsev: L'algoritmo deterministico Moser-Scheder per kSAT non è quello che ho citato più velocemente di quello che hai citato? Mi sto perdendo qualcosa?
Robin Kothari,

1
Ero solo preoccupato per questo nella tua notazione, quindi è davvero più veloce. Sembra che il documento sia apparso su arXiv pochi giorni fa: arxiv.org/PS_cache/arxiv/pdf/1008/1008.4067v1.pdf , quindi non c'è da stupirsi che non lo sapessi. ϵ
Grigory Yaroslavtsev

12

Come già accennato, se sei interessato a garanzie teoriche sul tempo di esecuzione, questa domanda è un duplicato.

Ma vorrei sottolineare che se vuoi davvero risolvere un problema concreto (come il problema della colorazione che hai menzionato), penso che non abbia assolutamente senso studiare i limiti superiori teorici.

Anche se volevi evitare aspetti di "ingegneria", ti suggerisco di prendere solo alcuni solutori SAT popolari, provarli e vedere cosa succede (molti di loro possono leggere lo stesso formato di file DIMACS, quindi è facile provare diversi solutori). Potresti avere sorprese sia positive che negative. Di recente ho avuto una famiglia di istanze SAT; un sacco di casi con decine di migliaia di variabili e più di un milione di clausole si sono rivelati facili da risolvere, mentre casi apparentemente molto più semplici con solo centinaia di variabili e migliaia di clausole erano troppo difficili per qualsiasi risolutore che ho provato.


8
Oltre al riassunto di Jukka, vale anche la pena notare che esistono due tipi principali di solutori SAT: quelli basati sulla propagazione del sondaggio, che funzionano bene per istanze SAT casuali e quelli che usano l'apprendimento delle clausole combinato con la risoluzione dell'unità, che tendono a funzionare bene per scoprire la struttura combinatoria. Questi hanno un comportamento abbastanza diverso. I casi peggiori per i solutori di SAT tendono ad essere casi che non sono soddisfacenti, ma in cui lo spazio dei nogood ha una struttura complessa che non consente molta potatura. Sfortunatamente le istanze della combinatoria tendono ad essere di questo tipo.
András Salamon,

11

deterministico per 3SAT.O(1.308n)


Suppongo che quando qualcuno esce con un limite superiore migliore citerebbe questo documento. Questo documento è stato citato solo una volta, che è "Un algoritmo di soddisfazione e durezza media per le formule sulla base binaria completa" E sembrano parlare solo di alcuni tipi di formule. Pertanto, questo sembra essere il miglior limite superiore finora.
Tayfun paga il

@TayfunPay: la carta in fondo alla mia risposta cita quella carta.

@RickyDemer Uhuh! è un limite migliore di questo? La notazione non è così chiara per me.
Tayfun paga il

@TayfunPay: Sì, e puoi cercare tra i due documenti come descritto di seguito. A pagina 5 del documento generale 3-SAT, forniscono il valore di , riportano il tempo di esecuzione dell'algoritmo PPSZ per k-SAT univoco in termini di e affermano che hanno lo stesso limite per k-SAT generale. Nella parte superiore della pagina 11, quel documento afferma che il loro algoritmo fornisce lo stesso limite di PPSZ, il che significa che non hanno mostrato nulla di più di quanto menzionato nella mia frase precedente. (continua ...)S kS3Sk

(... continua) S2SnSS3

8

È impossibile per 3SAT avere algoritmi sub-esponenziali a meno che l' ipotesi del tempo esponenziale sia falsa.

O(1.324n)

O(1.32216n)


15
Non è una tautologia?
Tsuyoshi Ito,

1
2o(n)

Il lavoro di Kazuo Iwama et al. (2004) è più recente di quello di Schoening (1999). Mi chiedo se siano disponibili risultati ancora più recenti.
MS Dousti,

8
Per evitare la possibilità di confusione, il mio ultimo commento si riferisce alla prima frase della risposta: "È impossibile per 3SAT avere algoritmi sub-esponenziali a meno che l'ipotesi del tempo esponenziale (ETH) sia falsa." La mia comprensione è che il tempo esponenziale l'ipotesi è la stessa ipotesi che afferma che non esiste un algoritmo per 3SAT il cui tempo di esecuzione è subesponenziale (cioè 2 ^ {o (n)}) nel numero di variabili.
Tsuyoshi Ito,

10
E per evitare ulteriore confusione, aggiungerò che quando Tsuyoshi ha pubblicato il suo commento, la risposta conteneva solo quella frase, che rendeva il suo commento molto appropriato.
Robin Kothari,

7

Questo post tratta i limiti superiori di SAT. Questo si occupa dei migliori limiti inferiori. Questo link fornisce dettagli sulla competizione annuale che confronta le implementazioni del solutore SAT, tutte scaricabili. Per semplicità, potresti iniziare con SAT4J , una libreria basata su Java per la risoluzione SAT.


Risulta che questa domanda era già stata posta in precedenza; Non l'ho visto quando ho cercato nel sito. La risposta di Tian Liu alla domanda sui limiti superiori è esattamente quello che stavo cercando. Grazie per i collegamenti, dave!
Daniel Apon,

1
Questa è la prova che passo troppo tempo qui ;-)
Dave Clarke,

siamo contenti che lo fai :)
Suresh Venkat,

2
Non sono sicuro che consiglierei sat4J, non solo è significativamente più lento dello stato dell'arte ma anche un po 'più complesso. È vero, tuttavia, che è ben personalizzabile grazie alla struttura orientata agli oggetti. MiniSat è scritto molto bene e 2.2 è all'avanguardia.
Mikolas,

3

Il miglior algoritmo deterministico per 3-SAT ora ha il limite superiore 1.32793 ^ n, vedi https://arxiv.org/abs/1804.07901 di Sixue Liu. Fondamentalmente i limiti superiori per tutti i k-SAT sono stati migliorati in questo documento.

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.