In casi soddisfacenti di , i solutori SAT basati su DPLL forniranno un compito soddisfacente in tempo lineare.PHP
Per capire perché, osserva come la codifica CNF di un'istanza insoddisfacente di con n buchi e n + 1 piccioni è sintatticamente identica a un'istanza di k = n Colorazione del grafico, in cui il grafico di input è una cricca di n + 1 vertici .PHPnn+1k=nn + 1
Analogamente, la codifica CNF di un'istanza soddisfacente di con n buchi e n piccioni è sintatticamente identica a un'istanza di k = n Colorazione del grafico, in cui il grafico di input è una cricca di n vertici.PHPnnK = nn
Ora, colorare una cricca di vertici con n colori è semplice: scansiona i vertici e assegna a ciascuno di essi uno dei colori rimanenti (i colori già assegnati sono automaticamente esclusi dalla cricca del grafico, usando la propagazione dell'unità) . Qualunque dei colori rimanenti che scegli, sarà buono e ti porterà ad un compito soddisfacente.nn
Dal punto di vista del risolutore DPLL: ogni volta che proverà a indovinare il valore booleano di una variabile , tale valore sarà corretto (qualunque esso sia), perché ci sarà sicuramente un compito soddisfacente in quale variabile v ho il valore indovinato. La propagazione dell'unità farà il resto del lavoro, guidando il risolutore lungo il percorso soddisfacente (in altre parole: impedendogli di indovinare valori errati).viovio
La ricerca procede quindi una variabile dopo l'altra, in modo lineare, ogni volta facendo l'ipotesi corretta.