Rendere i solutori SAT competitivi con algoritmi specializzati


11

Quali sono gli ostacoli per rendere competitivi i solutori SAT con algoritmi di grafi specializzati? In altre parole, è possibile aspettarsi solutori SAT in grado di sostituire il ruolo del progettista dell'algoritmo, ovvero essere in grado di riconoscere automaticamente la struttura del problema e risolverlo rapidamente come un algoritmo specializzato?

Ecco alcuni esempi che penso siano stimolanti per i solutori SAT di oggi:

  • Conteggio di set indipendenti di dimensioni . La codifica "x è un insieme indipendente di dimensioni k" fornisce una formula di grandi dimensioni che è difficile da risolvere. Un risolutore SAT ideale riconoscerebbe che questo problema è facile sul grafico della larghezza dell'albero limitato con l'aggiunta di una variabile "count" aggiuntiva per i sacchetti.k

  • Trovare l'albero minimo di Steiner. Ancora una volta, "Steiner tree" ha un vincolo globale, tuttavia, un algoritmo specializzato (come qui ) semplifica l'attività aggiungendo una variabile aggiuntiva

  • Qualsiasi problema che si riduce ad abbinamenti perfetti planari.


non sta già succedendo? È un trucco popolare ridurre un problema a SAT e quindi eseguire un risolutore.
Suresh Venkat,

Sì, ma sono competitivi? Mi chiedo se ci sia un solutore SAT che potrebbe prendere una semplice serie di vincoli che descrivono il sottografo euleriano di un grafico planare e fare #SAT in tempo polinomiale
Yaroslav Bulatov

Risposte:


7

C'è un bel documento che aiuta a visualizzare la struttura interna delle istanze SAT. Vedere Visualizzazione delle istanze e delle esecuzioni SAT dell'algoritmo DPLL di Carsten Sienz (pubblicato in SAT 2004). Fondamentalmente, disegna un grafico che l'autore chiama "grafico di interazione variabile" (secondo alcune regole) per visualizzare la relazione tra le clausole soddisfatte. L'autore lo mostra con diverse serie parziali di DPLL.

L'affermazione principale è che queste tecniche di visualizzazione potrebbero essere utilizzate per rilevare la struttura e progettare un algoritmo appropriato per esso. Tuttavia, non è ancora chiaro come possiamo rilevare strutture efficienti come quella presentata nel documento. È noto che gli algoritmi SAT per un problema specifico si comportano male in altri problemi. Quindi c'è "no-free-lunch", sebbene questa affermazione non possa essere formalmente dichiarata per quanto ne so.


Penso che il teorema del "no-free-lunch" sia il "no free lunch for search" no-free-lunch.org . Fondamentalmente non possiamo permetterci la ricerca su tutte le possibili strutture problematiche e dobbiamo orientare la nostra ricerca verso particolari strutture. Penso che sia OK dal momento che i progettisti di algoritmi umani lo fanno già
Yaroslav Bulatov il
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.