Misurare la difficoltà delle istanze SAT


28

Data un'istanza di SAT, vorrei essere in grado di stimare quanto sarà difficile risolvere l'istanza.

Un modo è eseguire i solutori esistenti, ma quel tipo di sconfitte ha lo scopo di stimare la difficoltà. Un secondo modo potrebbe essere il rapporto tra clausole e variabili, come avviene per le transizioni di fase in random-SAT, ma sono sicuro che esistano metodi migliori.

Data un'istanza di SAT, ci sono alcune euristiche veloci per misurare la difficoltà? L'unica condizione è che queste euristiche siano più veloci di quelle effettivamente eseguite sui solutori SAT esistenti sull'istanza.


Domanda correlata

Quali problemi SAT sono facili? su cstheory.SE. Questa domanda pone su insiemi trattabili di istanze. Questa è una domanda simile, ma non esattamente la stessa. Sono davvero interessato a un'euristica che, data una singola istanza, fa una sorta di ipotesi semi-intelligente di se l'istanza sarà difficile da risolvere.


Riesci a capire perché la transizione di fase rispetto alla "densità" non è ciò di cui hai bisogno?
Raffaello

@Raphael è un metodo abbastanza buono, e lo cito nella mia domanda. Ma ho avuto l'impressione che esistano euristiche ancora migliori. La transizione di fase mi dà fastidio perché sembra così facile da ingannare (basta aggiungere clausole o istanze facilmente soddisfacenti a quella che stai cercando di mascherare)
Artem Kaznatcheev

Scusa, ho perso quella parte della tua domanda. Giusto, come notano i commentatori, la transizione di fase sembra essere sensibile alle formule non casuali.
Raffaello

2
Puoi rappresentare una formula SAT (in CNF) come un grafico bipartito, con vertici per ogni formula e clausola e bordi che rappresentano le occorrenze. Se questo grafico è facile da partizionare, il problema può essere scomposto nei sottografi partizionati. Forse questo può servire come misura utile? Non ne ho idea (motivo per cui questo è un commento e non una risposta).
Alex ten Brink,

Questo potrebbe essere utile: ece.uwaterloo.ca/~vganesh/QPaper/paper.pdf
utente

Risposte:


22

In generale, questa è una domanda di ricerca molto pertinente e interessante. "Un modo è eseguire i solutori esistenti ..." e cosa ci direbbe esattamente? Potremmo vedere empiricamente che un'istanza sembra difficile per un risolutore specifico o un algoritmo / euristico specifico, ma cosa dice realmente sulla durezza dell'istanza?

Un modo che è stato perseguito è l'identificazione di varie proprietà strutturali delle istanze che portano a algoritmi efficienti. Queste proprietà sono infatti preferite per essere "facilmente" identificabili. Un esempio è la topologia del grafico del vincolo sottostante, misurato utilizzando vari parametri di larghezza del grafico. Ad esempio, è noto che un'istanza è risolvibile in un tempo polinomiale se la larghezza dell'albero del grafico del vincolo sottostante è delimitata da una costante.

Un altro approccio si è concentrato sul ruolo della struttura nascosta delle istanze. Un esempio è il set backdoor , ovvero l'insieme delle variabili in modo tale che quando vengono istanziate, il problema rimanente si semplifica in una classe trattabile. Ad esempio, Williams et al., 2003 [1] mostrano che, anche tenendo conto del costo della ricerca delle variabili backdoor, si può ancora ottenere un vantaggio computazionale complessivo concentrandosi su un set backdoor, purché l'insieme sia sufficientemente piccolo. Inoltre, Dilkina et al., 2007 [2] notano che un risolutore chiamato Satz-Rand è straordinariamente bravo a trovare piccole backdoor forti su una gamma di domini sperimentali.

Più recentemente, Ansotegui et al., 2008 [3] propongono l'uso della complessità dello spazio ad albero come misura per i solutori basati su DPLL. Dimostrano che anche lo spazio a limite costante implica l'esistenza di un algoritmo di decisione temporale polinomiale con lo spazio che è il grado del polinomio (Teorema 6 nel documento). Inoltre, mostrano che lo spazio è più piccolo della dimensione delle cut-cycle. In effetti, in base a determinati presupposti, lo spazio è anche più piccolo delle dimensioni delle backdoor.

Formalizzano anche ciò che penso tu stia cercando, ovvero:

ψΓO(nψ(Γ))


[1] Williams, Ryan, Carla P. Gomes e Bart Selman. "Backdoor alla tipica complessità del caso." Conferenza internazionale congiunta sull'intelligenza artificiale. Vol. 18, 2003.

[2] Dilkina, Bistra, Carla Gomes e Ashish Sabharwal. "Svantaggi nella complessità del rilevamento backdoor." Principi e pratica della programmazione dei vincoli (CP 2007), pagg. 256-270, 2007.

[3] Ansótegui, Carlos, Maria Luisa Bonet, Jordi Levy e Felip Manya. "Misurare la durezza delle istanze SAT." In Atti della 23a Conferenza nazionale sull'intelligenza artificiale (AAAI'08), pagg. 222-228, 2008.


ψ(Γ)

@ArtemKaznatcheev Penso che il set backdoor sia probabilmente l'unico realmente utilizzato. Quando si esegue un solutore, non ci interessa davvero la durezza della formula; l'istanza deve essere comunque risolta. La misurazione deve darci un vantaggio computazionale, o forse possiamo usarla per scegliere un'euristica adatta. A parte questo, immagino che le misure di durezza siano ancora piuttosto sperimentali.
Juho,

1

Dato che conosci la transizione di fase, permettimi di menzionare alcuni altri semplici controlli di cui sono a conoscenza (che sono probabilmente inclusi nell'analisi del grafico dei vincoli):

  • Alcuni generatori SAT casuali precoci hanno inavvertitamente creato formule per lo più facili perché hanno usato la "densità costante", il che significa una proporzione approssimativamente uguale di tutte le lunghezze della clausola. Questi erano per lo più facili perché le 2 clausole e le unità semplificano significativamente il problema, come ci si dovrebbe aspettare, e le clausole davvero lunghe non aggiungono molto ramificazione o facilitano ancora di più l'iper-risoluzione. Quindi, sembra meglio attenersi a clausole di lunghezza fissa e variare altri parametri.
  • |X|*|¬X|X
  • v1,v2,v3{v1,v2,...},{v2,v3,...},{v1,v3,...}

[1] https://arxiv.org/pdf/1903.03592.pdf


0

Oltre all'eccellente risposta di Juho, ecco un altro approccio:

Ercsey-Ravasz e Toroczkai, Durezza dell'ottimizzazione come caos transitorio in un approccio analogico per vincolare la soddisfazione , volume 7 di fisica della natura, pagine 966–970 (2011).

Questo approccio consiste nel riscrivere il problema SAT in un sistema dinamico, in cui qualsiasi attrattore del sistema è una soluzione al problema SAT. I bacini di attrazione del sistema sono più frattali man mano che il problema diventa più difficile, e quindi la "difficoltà" dell'istanza SAT può essere misurata esaminando quanto siano caotici i transitori prima che il sistema converga.

In pratica, questo significa avviare un gruppo di solutori da diverse posizioni iniziali ed esaminare la velocità con cui i solutori sfuggono ai transitori caotici prima che arrivino a un attrattore.

Non è difficile trovare un sistema dinamico per il quale le "soluzioni" siano soluzioni a un determinato problema SAT, ma è un po 'più difficile assicurarsi che le soluzioni siano tutte attrattive e non repellenti. La loro soluzione è quella di introdurre variabili energetiche (simili ai moltiplicatori di Lagrange) per rappresentare quanto gravemente venga violato un vincolo e cercare di far sì che il sistema minimizzi l'energia del sistema.

È interessante notare che, utilizzando il loro sistema dinamico, è possibile risolvere i problemi di SAT in tempo polinomiale su un computer analogico, che di per sé è un risultato notevole. C'è un problema; potrebbe richiedere tensioni esponenzialmente grandi per rappresentare le variabili di energia, quindi sfortunatamente non puoi realizzarlo su hardware fisico.


1
"usando il loro sistema dinamico, puoi risolvere i problemi di SAT in tempo polinomiale su un computer analogico, che di per sé è un risultato notevole." Non sarei d'accordo sul fatto che questo sia notevole. Come notate: richiede una precisione esponenziale. Questo è in realtà un trucco standard che si collega direttamente alla definizione di NP. Se potessi misurare in modo esponenziale accurato, potresti semplicemente provare a stimare il numero di percorsi di accettazione (o visualizzarlo come metodo di camminata casuale) e vedere se è esattamente zero o è un paio (ovviamente, ciò richiederebbe una misurazione esponenzialmente accurata, come per il sistema dinamico).
Artem Kaznatcheev,

Grazie per quello Non conosco molti risultati teorici sull'informatica analogica.
Pseudonimo del
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.