У задоволених випадках , SAT-рішення, засновані на DPLL, забезпечуватимуть виконання лінійного часу.PHP
Щоб зрозуміти, чому, поспостерігайте, як кодування CNF незадовільного екземпляра з отворами і голубів синтаксично ідентично екземпляру Graph Coloring, де вхідний графік являє собою кліку вершин.PHPnn+1k=nn+1
Аналогічно, кодування CNF задовольняючого екземпляра з отворами і голубами синтаксично ідентично екземпляру Graph Coloring, де вхідний графік є кліком з вершин.PHPnnk=nn
Тепер забарвлення кліки з вершин з кольорів є простим: скануйте вершини та призначте кожному з них один із решти кольорів (вже призначені кольори автоматично виключаються за кліком графіка, використовуючи одиничне поширення) . Який би з решти кольорів ви не вибрали, це буде добре і приведе вас до задоволення.nn
З точки зору вирішення DPLL: кожен раз, коли він намагатиметься відгадати булеве значення змінної , таке значення буде правильним (яким би воно не було), оскільки, безумовно, буде задовольняючим завданням, у якому змінна має відгадане значення . Поширення одиниці виконає решту роботи, провівши розв’язувача по задовольняючому шляху (іншими словами: заважаючи вгадувати неправильні значення).vivi
Потім пошук проходить одну змінну за іншою лінійно, кожен раз роблячи правильну здогадку.