L'equivalenza delle formule di KROM è tracciabile?
-
29-09-2020 - |
Domanda
Assumi che ho due formule Krom $ \ psi_1, \PSI_2 $ .Le formule KROM sono formule proposizionali in CNF che hanno 2 letterali in ogni clausola.Ogni letterale può essere annullato o non andato.In altre parole, $ \ psi_1, \ psi_2 $ sono formule 2-cnf.Ad esempio:
$ (x_1 \ vee \ neg x_2) \ Land (\ neg x_2 \ vee x_3) \ Land (x_3 \ vee x_4) $
Voglio decidere se $ \ psi_1, \ psi_2 $ sono logicamente equivalenti, cioè
Questo problema è trattato?
Soluzione
Sì, l'equivalenza può essere controllata in tempo polinomiale (infatti, in termini quadratici).
Descriverò come verificare se $ \ psi_1 \ lor \ neg \ psi_2 $ è vero per tutte le assegnazioni. Puoi fare lo stesso per $ \ neg \ psi_1 \ lor \ psi_2 $ e usa questo per verificare se $ f $ è una tautologia, cioè, sia che $ \ psi_1, \ psi_2 $ sono logicamente equivalenti.
Lo farò controllando se $ \ psi_1 \ lor \ neg \ psi_2 $ è falso per qualsiasi assegnazione, o in altre parole, sia < "Math-Container"> $ \ neg (\ psi_1 \ lor \ neg \ psi_2) $ è soddisfacente. Si noti che
$$ \ neg (\ psi_1 \ lor \ neg \ psi_2)=neg \ psi_1 \ Land \ psi_2, $$
Quindi è sufficiente per testare la soddisfabilità di $ \ neg \ psi_1 \ Land \ psi_2 $ dove $ \ psi_1, \ PSI_2 $ Formule Krom (2-CNF).
Supponiamo che $ \ PSI_1= c_1 \ Land \ cdots \ Land c_k $ dove $ c_i $ è la $ i $ Clausola in $ \ psi_1 $ . Quindi
$$ \ neg \ psi_1= (\ neg c_1) \ lor \ cdots \ lor (\ neg c_k). $$
quindi
$$ \ Begin {allinea *} \ Neg \ psi_1 \ Land \ psi_2 &= (\ neg c_1) \ lor \ cdots \ lor (\ neg c_k)) \ Land \ psi_2 \\ &= (\ neg c_1 \ Land \ psi_2) \ lor \ cdots \ lor (\ neg c_k \ Land \ psi_2). \ end {allinea *} $$
ora, $ \ neg \ psi_1 \ Land \ psi_2 $ è soddisfavole IFF $ \ neg c_i \ Land \ psi_2 $ è soddisfacente per alcuni $ i $ . Quindi, possiamo isolare su $ I $ e prova la soddisfattiva di ogni $ \ neg c_i \ Land \ psi_2 $ ; Se uno di essi è soddisfavole, allora $ \ neg \ psi_1 \ lor \ psi_2 $ è soddisfavole e $ f $ non è una tautologia e $ \ psi_1, \ psi_2 $ non sono logicamente equivalenti.
Come testare la soddisfazione della $ \ neg c_i \ Land \ psi_2 $ ? Bene, $ c_i $ ha il modulo $ (\ ell_1 \ lor \ ell_2) $ dove
Altri suggerimenti
Richiamo Soluzione a 2 satelliti che utilizza componenti fortemente collegati: Costruiamo un grafico con i vertici $ x_1, \ Ldots, x_n, \ lnot x_1, \ ldots, \ lnot x_n $ < / span>, e sostituiamo ogni clausola $ x_i \ lor x_j $ con bordi $ \ lnot x_i \ to x_j $ < / span> e $ \ lnot x_j \ a x_i $ . Un esempio da qui :
Per soddisfare la formula, è necessario e sufficiente assegnare i vertici in modo che non ci siano contraddizioni nel grafico (senza bordo $ true \ to false $ ). Utilizzeremo questi grafici per il controllo dell'equivalenza.
- .
- Costruiamo questi grafici $ G_1 $ e $ G_2 $ per entrambe le formule $ f_1 $ e $ f_2 $ .
- Se c'è un ciclo $ x_i \ leadsto \ lnot x_i \ leadsto x_i $ in un grafico, quindi la sua formula non ha soluzioni. Controlliamo che entrambe le formule siano solvibili / irravidabili.
- Se esiste un percorso di forma $ x_i \ leadsto \ lnot x_i $ (analogamente per il caso $ \ lnot x_i \ leadsto x_i $ ), sappiamo che per soddisfare la formula dobbiamo selezionare $ x_i $ per essere falso (altrimenti abbiamo una contraddizione). Ricordiamo questa scelta. Usando il grafico, possiamo assegnare valori a tutti i vertici raggiungibili da $ \ lnot x_i $ (devono essere veritieri). Di nuovo, verificare che entrambe le formule fecero esattamente le stesse decisioni alla fine.
- Rimuovere tutti i bordi da / da tutti i vertici noti dai grafici.
- ora, $ f_1 $ e $ f_2 $ sono equivalenti $ \ IFF $ I grafici rimanenti sono equivalenti nel senso seguente: per qualsiasi classe $ V_1, V_2 $ percorso $ v_1 \ leadsto v_2 $ esiste in $ G_1 $ IFFS esiste in $ G_2 $ . Questo può essere controllato alla maggior parte dei $ o (| v | \ clot | e |) $ tempo (basta eseguire DFS da ciascun vertice e verificare che abbia visitato lo stesso vertici per entrambi i grafici). Forse può essere fatto più velocemente.
- $ TRUE $ Per tutti i vertici raggiungibili da $ v_1 $ .
- $ false $ da tutti i vertici che possono raggiungere $ v_2 $ .
- Rimuovere tutti i vertici noti (menzionati sopra e i loro complementi) dal grafico. Tutti i vertici rimanenti creano componenti collegati. Colouriamo componenti collegati in $ Vero $ e componenti collegati corrispondenti ai loro complementi - in $ false $ ( Vedi Nota sotto).
- Se $ U $ appartiene a un componente che è stato pieno colore $ TRUE $ , quindi < Span Class="Math-Container"> $ V $ deve anche essere vero.
- Altrimenti, significa che $ U $ è raggiungibile da $ v_1 $ , e quindi $ V $ è anche raggiungibile da $ v_1 $ e deve essere vero. $ \ Blacksquare $
Proof :
$ \ Levingarrow $ : evidente, poiché dopo la chiusura transitiva dei grafici avremo le stesse implicazioni in entrambe le formule.
$ \ raggi $ : per contraddizione. Wlog supponiamo che esista un percorso $ v_1 \ leadsto v_2 $ in $ g_1 $ che no Esistono in $ G_2 $ . Significa che l'assegnazione $ V_1:= Vero $ , $ v_2:= false $ è fattibile in $ f_2 $ (dal momento che non c'è percorso $ v_1 \ leadsto v_2 $ ) ma è infastibile in $ f_1 $ .
Vale a dire, il seguente assegno soddisfa $ f_2 $ :
- .
Questo incarico non ha contraddizione, poiché non può esserci alcuna classe $ u \ a V $ del modulo $ true a false $ :
- .
Nota tecnica : per ogni variabile $ x_i $ Ci sono due vertici: