Trovare una soluzione a un problema di soddisfacibilità è più difficile che decidere di soddisfarla?


11

Il problema è determinare se una determinata espressione booleana è soddisfacente dal punto di vista computazionale distinta dal trovare effettivamente una soluzione all'espressione?

In altre parole, esiste un altro modo per scoprire che una determinata espressione è soddisfacente senza determinare esplicitamente le "giuste impostazioni" per le variabili booleane? O tutte le prove possibili riducono in tempo polinomiale le "impostazioni giuste"?

Perdona la mia ignoranza, sono solo uno studente di ingegneria. Wikipedia sembra implicare che l'atto di appena ritrovamento SAT o UNSAT è NP-completo.


8
Risposta breve: il problema di trovare un compito soddisfacente è difficile dal punto di vista computazionale quanto decidere se esiste. L'idea è che, dato un algoritmo che decide di soddisfabilità, può essere utilizzato per costruire in modo efficiente un compito soddisfacente. Dai
John D.

2
Pensavo che UNSAT fosse completo?
G. Bach,

Risposte:


15

Come menzionato in un commento, qualsiasi metodo per determinare la soddisfacibilità di una formula booleana può essere facilmente convertito in un metodo per trovare l'assegnazione variabile soddisfacente. Questo perché tutti i problemi NP-completi sono auto-riducibili verso il basso.

Da Wikipedia :

Self-riducibilità

Il problema SAT è auto-riducibile, cioè ogni algoritmo che risponde correttamente se un'istanza di SAT è risolvibile può essere usato per trovare un compito soddisfacente. Innanzitutto, viene posta la domanda sulla formula indicata . Se la risposta è "no", la formula non è soddisfacente. Altrimenti, la domanda viene posta sulla formula parzialmente istanziata , ovvero con la prima variabile sostituita da e semplificata di conseguenza. Se la risposta è "sì", allora , altrimenti . I valori di altre variabili possono essere trovati successivamente allo stesso modo. In totale, sono richieste esecuzioni dell'algoritmo, doveΦΦ{x1=TRUE}Φx1TRUEX1=TRUEX1=FUNLSEn+1n è il numero di variabili distinte in .Φ


-4

La risposta corretta è che determinare se esiste una soluzione e determinare una soluzione sono computazionalmente distinti. Non tutti i metodi per determinare se esiste una soluzione possono produrre una soluzione. Esiste una soluzione al problema del percorso hamiltoniano che può determinare se esiste un percorso ma non può produrre tale percorso. Detto questo, la domanda è messa in discussione da arxiv.org/abs/cs/0205064.

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.