Em casos satisfatível de , DPLL agentes de resolução SAT base fornecerá uma atribuição de satisfazer em tempo linear.PHP
Para entender o porquê, observe como a codificação CNF de uma instância insatisfatória de com n buracos e n + 1 pombos é sintaticamente idêntica a uma instância de k = n Graph Coloring, onde o gráfico de entrada é um clique de n + 1 vértices .PHPnn+1k=nn+1
Da mesma forma, o CNF que codifica de um exemplo de satisfatível com n furos e n pombos é sintactically idêntica a uma instância de k = n gráfico da coloração, onde o gráfico de entrada é um bando de n vértices.PHPnnk=nn
Agora, colorir uma clique de vértices com n cores é simples: digitalize os vértices e atribua a cada uma delas uma das cores restantes (as cores já atribuídas são automaticamente descartadas pela clique do gráfico, usando a propagação da unidade) . Qualquer que seja a cor que você escolher, ela será boa e o levará a uma tarefa satisfatória.nn
Do ponto de vista do solucionador de DPLL: sempre que tentar adivinhar o valor booleano de uma variável , esse valor estará correto (seja o que for), porque certamente haverá uma atribuição satisfatória na qual a variável v i terá o valor adivinhado. A propagação da unidade fará o resto do trabalho, guiando o solucionador ao longo do caminho satisfatório (em outras palavras: impedindo que ele adivinhe valores errados).vivi
A pesquisa então prossegue uma variável após a outra, linearmente, sempre que adivinhar corretamente.