I migliori solutori di SAT possono calcolare numeri facili?


11

I solutori SAT moderni sono molto bravi a risolvere molti esempi reali di istanze SAT. Tuttavia, sappiamo come generare quelli difficili: ad esempio utilizzare una riduzione da factoring a SAT e fornire i numeri RSA come input.

Ciò solleva la domanda: cosa succede se prendo un semplice esempio di factoring. Invece di prendere due numeri primi grandi su bit, cosa succede se prendo un primo su bit e un primo q su bit, lascia e la codifica come istanza SAT. sarebbe un numero facile da considerare con la ricerca della forza bruta o con i metodi di setacciatura poiché uno dei fattori è così piccolo; un moderno solutore SAT con una riduzione standard dal factoring al SAT prende anche su questa struttura?p log n n / log n N = p q F A C T O R ( N ) Nn/2plognn/lognN=pqFACTOR(N)N

Può superare il fattore solutori SAT dove rapidamente?| p | = registro nN=pq|p|=logn

Risposte:


10

Ci sono altri casi molto più semplici che sappiamo chiaramente che gli attuali algoritmi non possono risolvere in tempi sub-esponenziali. Questi algoritmi non sono in grado di contare (quasi tutti sono miglioramenti del DPLL che corrispondono al sistema di prova proposizionale della risoluzione).

Purtroppo tali esempi sono casi insoddisfacenti. La domanda sulla ricerca di istanze difficili naturali soddisfacenti per questi algoritmi è un problema di ricerca interessante (Russeell Impagliazzo lo ha menzionato durante il seminario sulla complessità delle prove dell'anno scorso a Banff). Ci sono casi soddisfacenti in cui sappiamo chiaramente che gli algoritmi falliscono gravemente se ce ne sono, ma non sono molto naturali (si basano su formule che esprimono la solidità degli algoritmi).

Per quanto riguarda il factoring, se la dimensione dei numeri è piccola (ad es. Logaritmico come nel tuo caso, ovvero i numeri sono indicati in unario), teoricamente non ci sono risultati che dicono che non possono essere risolti dagli attuali algoritmi, e infatti possiamo scrivere in modo semplice algoritmi temporali polinomiali che tengono conto di questi numeri. Quindi, se un determinato programma di risoluzione SAT può risolverli potrebbe dipendere dal particolare algoritmo.


Speravo di usare il binario e avere solo uno dei fattori per essere molto piccoli (nell'ordine , mentre l'altro è ) per preservare il più possibile il normale factoring (ho voglia di passare a unario cambia solo troppe cose per me). Grazie per le informazioni sui problemi più semplici, puoi fornire un link a un documento sulle istanze difficili insoddisfacenti basate sul conteggio? N / registro NlogNN/logN
Artem Kaznatcheev,

@Artem, qualsiasi complessità di prova ribassata per la risoluzione darebbe un esempio, prendere ad esempio il principio del buco del piccione. Si può facilmente estrarre una prova di risoluzione (confutazione) per l'istanza insoddisfacente dal calcolo di questi algoritmi su quell'istanza. Dal 2007 è stato realizzato un bel sondaggio di Nathan Segerlind secondo cui IIRC lo copre. Fammi sapere se non c'è e ti troverò un altro riferimento.
Kaveh,

@Artem, penso che l'argomento funzioni anche nel caso in cui solo uno dei numeri sia logaritmico, cioè possiamo risolverlo in tempo polinomiale andando su tutti i numeri piccoli per vedere se uno di essi è un fattore del prodotto.
Kaveh,

@Kaven sì, ecco perché ho creato uno dei numeri di dimensioni logaritmiche. Lo spiego nella domanda. Non voglio una risposta che presupponga una rappresentazione unaria come suggerito dal tuo terzo paragrafo. Daremo un'occhiata a Segerlind più tardi. Ancora una volta, grazie per il commento: D.
Artem Kaznatcheev,

@Artem, prego. :) (Ho usato unario perché ho assunto che entrambi i numeri sono piccoli e usato come unario per affrontare il fatto che la dimensione dovrebbe essere esponenziale in essi, in alternativa si può semplicemente pad per renderli grandi.)
Kaveh
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.