Skip to content
Related Articles
Get the best out of our app
Open App

Related Articles

Conflict Driven Clause Learning (CDCL)

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

In the field of computer science, a technique for resolving the Boolean satisfiability problem is referred to as conflict-driven clause learning (CDCL) (SAT). The problem on the SAT presents students with a Boolean formula and asks them to assign variables in such a way that the formula as a whole evaluates to true. The inner workings of CDCL SAT solvers were influenced by the DPLL solvers that came before them. The most notable distinction between CDCL and DPLL is that CDCL does not follow a chronological order when back-hopping.

The idea of learning through conflict was put up by Marques-Silva and Sakallah (1996, 1999), as well as by Bayardo and Schrag (1997).


  • Choose a variable, and then assign either True or False to it. The term for this circumstance is the chosen state. 
  • Boolean constraint propagation should be applied (unit propagation).
  • Construct the graph showing the implication.
  • In the event there is any contention:
    • Determine where the break in the implication graph occurred that brought about the disagreement.
    • Create a new clause that is the rebuttal of the assignments that were the root cause of the conflict.
    • Non-chronologically retraces to the proper decision level, where the first-assigned variable implicated in the disagreement was assigned. This process is referred to as “back jumping.
  • If not, start back at step 1 and keep going until all of the variable values are assigned.

Boolean satisfiability problem (SAT):

The difficulty of determining whether a given Boolean formula has an interpretation that satisfies it is known as the Boolean satisfiability question in logic and computer science. Other names for this issue include the propositional satisfiability problem (or PSP), SAT, and B-SAT. The propositional satisfiability problem is another term for this issue. To put it another way, it checks to see if a given Boolean formula always evaluates to TRUE no matter which of its variables is substituted with the value TRUE or FALSE. If this holds, then we can confidently say that the formula can be solved. A formula describing a function that cannot be met if it always gives a false result regardless of the values of the variables for which it is written when that function is applied to any given set of inputs is called an “impossible” formula. The formula (a AND NOT b) = TRUE can be satisfied since it is possible to obtain the values a = TRUE and b = FALSE in this way. What this means is that the formula can be utilized appropriately. A, but not A, does not give the same satisfaction.

Applications of CDCL:

The CDCL algorithm finds its most important use in a variety of SAT solvers, including the following:

  1. MiniSAT 
  2. Zchaff SAT
  3. Z3 
  4. Glucose
  5. ManySAT etc.

SAT solvers have been given such a significant boost in power by the CDCL algorithm that they are now being successfully applied in a variety of real-world application domains, including artificial intelligence (AI) planning, bioinformatics, software test pattern generation, software package dependencies, hardware and software model checking, and cryptography.

My Personal Notes arrow_drop_up
Last Updated : 18 Nov, 2022
Like Article
Save Article
Similar Reads
Related Tutorials