什么是3SAT问题?首先我们要聊聊SAT是什么意思:SAT是SATISFIABILITY(可满足性)的缩写。SAT问题就是问某一个布尔表达式是不是“可满足”的问题。这里的术语“可满足”的意思是存在一组“真值赋值”(truth assignment)使得布尔表达式为真。举例来说,"a & !b"(a与非b)就是一个"可满足"的布尔表达式,因为存在一组真值赋值(a=1,b=0)使其为真,而"(a | b) & (a | !b) & (!a | b) & (!a | !b)"就是一个"不可满足"的布尔表达式,因为找不到一个真值赋值使它为真。而3SAT问题就是问某个具有特殊形式的布尔表达式是否可满足的问题,这种特殊形式就是"3合取范式"或"3-CNF"。