Advanced Topic 40 of 51 Theory & Discrete Math
SAT Problem
Deciding whether a Boolean formula can be satisfied.
How it works
The Boolean satisfiability problem asks whether there is an assignment of true and false values to variables that makes a propositional formula true. Formulas are usually given in conjunctive normal form, a conjunction of clauses of literals; 2-SAT is solvable in linear time, while 3-SAT is NP-complete. Modern CDCL solvers use unit propagation, clause learning, restarts and heuristics, solving industrial instances with millions of variables despite worst-case hardness.
Step-by-step walkthrough
- A formula such as (x or y) and (not x or z) has Boolean variables.
- Try an assignment, say x true y false z true.
- Check that every clause is true.
- If so the formula is satisfiable.
- SAT is NP-complete, yet modern SAT solvers handle huge instances.
Where it is used
SAT solvers verify hardware and software, plan, schedule, configure products, solve puzzles and cryptanalysis problems and power SMT solvers and package dependency resolution.
Common pitfall
Encoding problems into SAT can blow up in size, and a poor encoding makes solving slow. Random hard instances near the phase transition are difficult. A solver can say satisfiable with a model, but proving unsatisfiability may need huge proofs; request proof certificates. Use incremental solving, symmetry breaking and good variable choices.
Where it fits in the course
SAT Problem is topic 40 of 51 in Theory & Discrete Math, rated Advanced. It follows P vs NP. The next topic is Space Complexity Classes.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Theory & Discrete Math quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Theory & Discrete Math quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is SAT Problem?
Where do people use SAT Problem?
What is the most common mistake with SAT Problem?
What should I learn before this topic?
How can I practice it?
Is SAT Problem hard to learn?
How long does it take to learn SAT Problem?
Which topics are related to SAT Problem?
What should I study after SAT Problem?
Related topics
- P vs NP (Theory & Discrete Math)
- Space Complexity Classes (Theory & Discrete Math)
- Cook-Levin Theorem (Theory & Discrete Math)
- Randomized Complexity (Theory & Discrete Math)
- Consensus Problem (Distributed Systems & Cloud)
- Knapsack Problem (Algorithms)
- ABA Problem (Concurrency & Parallelism)