Sur la page wikipedia ici, il décrit assez bien l'algorithme CDCL (et il semble que les photos ont été prises à partir de diapositives créées par Sharad Malik à Princeton). Cependant, quand il décrit comment revenir en arrière, tout ce qu'il dit est "au point approprié". MiniSAT utilise également une variante de l'algorithme CDCL, j'ai donc lu ce document. Ce qu'ils semblent dire, c'est que vous devriez revenir en arrière jusqu'à ce que la clause apprise soit une clause unitaire. C'est certainement une clarification, mais cela n'a pas de sens pour moi. La dernière affectation va certainement faire partie de la clause de conflit apprise pour autant que je sache (peut-être que je me trompe ici?) Donc lorsque vous revenez en arrière d'une étape, vous ferez immédiatement l'unité de la clause apprise, la dernière valeur affectée sera inversée, et l'algorithme se déroulera exactement comme DPLL sans jamais revenir en arrière suffisamment loin. De plus, la page wikipedia ne suit pas cette règle, elle revient beaucoup plus loin comme cela semble souhaitable.
Jusqu'où doit-on revenir en arrière?