令变量为。两个变量之间的距离定义为。两个文字之间的距离是相应的两个变量之间的距离。 d (x a,x b)= | a − b |
假设我有一个3-SAT实例,因此对于每个子句我们都有对于一些固定值。d (x aÑ
从概念上讲,您可以将其描述为物理上所有的文字都在一行上,并且由于物理原因,所有子句都不能超过一定长度。
在这种约束下,是否存在3-SAT的严格实例?我可以在附近多大的地方找到困难的实例吗?如果我允许一些子句违反约束怎么办?
很难说,启发式求解器会退回到最坏的情况。
令变量为。两个变量之间的距离定义为。两个文字之间的距离是相应的两个变量之间的距离。 d (x a,x b)= | a − b |
假设我有一个3-SAT实例,因此对于每个子句我们都有对于一些固定值。d (x aÑ
从概念上讲,您可以将其描述为物理上所有的文字都在一行上,并且由于物理原因,所有子句都不能超过一定长度。
在这种约束下,是否存在3-SAT的严格实例?我可以在附近多大的地方找到困难的实例吗?如果我允许一些子句违反约束怎么办?
很难说,启发式求解器会退回到最坏的情况。
Answers:
否。如果3-SAT实例包含子句,则可以测试时间的可满足性。由于是一个固定常数,因此这是一个多项式时间算法,可以解决问题的所有实例。O (m 2 N)N
该算法分阶段工作。让表示由仅使用变量的子句组成的公式。令表示分配集合,可以将其扩展为的令人满意的分配。请注意,给定,我们可以在时间中计算:对于中的每个,我们尝试两种可能性,并检查它是否满足中包含变量所有子句φ 我X 1,... ,X 我小号我 ⊆ { 0 ,1 } Ñ X 我- Ñ,X 我- Ñ + 1,... ,X 我φ 我小号我- 1 š 我 Ö (2 Ñ)(X i − N − 1,… ,x i − X 我φ 我X 我( X 我- Ñ,..., X 我) š 我我 š 我米小号米 ≠∅ø( 2 Ñ)米Ô(米 2 Ñ); 如果是这样,我们将到。在第阶段,我们计算。一旦完成所有阶段,则当且仅当,3-SAT实例才可满足。每个阶段花费时间,并且有阶段,因此总运行时间为。这是输入大小的多项式,因此构成多项式时间算法。
即使您允许固定数量的子句违反约束,该问题仍可以在多项式时间内解决。特别是,如果计算违反约束的子句的数量,则可以通过首先枚举这些子句中变量的所有可能值来解决时间的问题,然后继续上面的算法。当是固定常数时,这是多项式时间。可能会有更有效的算法。O (m 2 (t + 1 )N)t
SAT公式的事件图是一个二部图,它具有每个子句和每个变量的顶点。我们在子句及其所有变量之间添加边。如果入射图的树宽是有界的,那么我们可以决定P中的SAT公式,实际上我们可以做更多的事情。您的事件图非常受限制。例如,它是有界路径图,因此可以多项式时间求解。对于上述众所周知的结构结果,例如,请参见:https : //www.sciencedirect.com/science/article/pii/S0166218X07004106。