Ridurre il seguente problema a SAT


21

Ecco il problema Dato , dove ogni . Esiste un sottoinsieme con dimensioni al massimo tali che S \ cap T_i \ neq \ emptyset per tutti i ? Sto cercando di ridurre questo problema a SAT. La mia idea di una soluzione sarebbe quella di avere una variabile x_i per ciascuna da 1 a n . Per ogni T_i , crea una clausola (x_ {i_1} \ vee \ cdots \ vee x_ ​​{i_k}) se T_i = \ {i_1, \ ldots, i_k \} . Quindi e tutte queste clausole insieme. Ma questa chiaramente non è una soluzione completa in quanto non rappresenta il vincolo che ST i{ 1 , ... , n }k,n,T1,,TmTi{1,,n}S{1,,n}kSTiixinTi(xi1xik)Ti={i1,,ik}Sdeve avere al massimo k elementi. So che devo creare più variabili, ma semplicemente non sono sicuro di come. Quindi ho due domande:

  1. La mia idea di soluzione è sulla buona strada?
  2. Come devono essere create le nuove variabili in modo che possano essere utilizzate per rappresentare il vincolo di cardinalità k ?

5
Solo un'osservazione: il tuo problema è noto come HITTING SET , che è una formulazione equivalente del problema SET COVER .
A.Schulz,

Risposte:


13

Sembra che tu stia provando a calcolare un ipergrafo trasversale di dimensione K . Cioè, {T1,...,Tm} è il tuo ipergrafo e S è il tuo trasversale. Una traduzione standard consiste nell'esprimere le clausole come in precedenza, quindi tradurre la limitazione della lunghezza in un vincolo di cardinalità.

Quindi usa la tua codifica esistente, ovvero e quindi aggiungi clausole di codifica .1jmioTjXioΣ1ionXioK

Σ1ionXioK è un vincolo di cardinalità. Esistono diverse traduzioni di vincoli di cardinalità in SAT.

La traduzione del vincolo di cardinalità più semplice ma piuttosto grande è solo . In questo modo ogni disgiunzione rappresenta il vincolo - per tutti i sottoinsiemi di di dimensione k + 1. Cioè, ci assicuriamo che non sia possibile impostare più di k variabili. Si noti che questa non è una dimensione polinomiale inX{1,...,n},|X|=K+1ioX¬Xio¬ioXXioX{1,...,n}K

Alcuni collegamenti a documenti su traduzioni con vincoli di cardinalità più efficienti in termini di spazio che hanno dimensioni polinomiali inK :

Se sei effettivamente interessato a risolvere tali problemi, forse è meglio formularli come problemi pseudo-booleani (vedi l' articolo wiki sui problemi pseudo-booleani ) e usare solutori pseudo-booleani (vedi competizione pseudo-booleana ). In questo modo i vincoli di cardinalità sono solo vincoli pseudo-booleani e fanno parte del linguaggio - si spera che il risolutore pseudo-booleano li gestisca direttamente e quindi in modo più efficiente.


1
Descrivi brevemente tutti i collegamenti (almeno autore e titolo) in modo che le persone possano trovare i documenti in caso di interruzione dei collegamenti. Probabilmente è meglio usare DOI se disponibile.
Raffaello

1
@Raphael Ottimo punto! Mi scuso per cominciare. Ora ho aggiornato tutti i collegamenti; Non sono sicuro che Springer fornisca DOI ma ora dovrebbero esserci informazioni sufficienti per trovarle se i collegamenti si interrompono. Nota: non collego ai PDF ufficiali di Springer per evitare problemi di accesso.
MGwynne,

Ma sembra che la riduzione che hai dato non sia in tempo polinomiale, giusto?
Aden Dong,

@AdenDong Non hai detto nulla sul polinomio;). La semplice traduzione del vincolo di cardinalità che cito non è polinomiale in (ma è per fisso ). Le traduzioni dei vincoli di cardinalità riportate negli articoli I list sono polinomiali in - usando nuove variabili. Ho aggiornato la mia risposta per renderlo più chiaro. KKK
MGwynne,

MGwynne, tendo sempre a collegare il DOI ufficiale anche se è protetto da paywall per essere a prova di futuro e anche versioni gratuite. Ma com'è ora, chiunque sarà in grado di trovare i documenti, quindi è completamente a posto.
Raffaello

6

Se non sei assolutamente impostato sul normale SAT, la tua idea è già una riduzione a MIN-ONES (su formule CNF positive), che è fondamentalmente SAT, ma dove puoi impostare al massimo variabili su true (rigorosamente è l'ottimizzazione versione in cui minimizziamo il numero di variabili vere).k

Allo stesso modo, se ti in una direzione di complessità parametrizzata, allora hai già sostanzialmente WSAT ( ), dove è la classe di tutti i positivi Formule CNF (come in precedenza, la notazione potrebbe aiutare le tue indagini). In questo caso dovresti iniziare a guardare quale parametrizzazione sarebbe utile nel tuo caso.Γ2,1+Γ2,1+

Suppongo che tu stia cercando una riduzione esplicita, ma in caso contrario puoi sempre ricorrere al teorema di Cook-Levin .

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.