从现有的2-SAT生成解决方案



涉及SCC的2-SAT的多项式时间算法告诉我们是否存在解,并帮助我们生成问题的解。但解决方案可能不止一种。我想知道是否有可能使用现有的解决方案有效地生成其他解决方案?

我想这取决于你对"其他解决方案";,例如2SAT的优化问题(具有最小数量为1的变量的解(是NP完全的。

如果您想要任何解决方案;高效的";你的意思是多项式时间-你可以将赋值中的变量从true翻转->false,反之亦然(一种简单的方法是添加(x OR x)或将false(^x OR ^x)作为子句(。然后,重新运行2SAT解算器将为您提供不同的解决方案(如果存在(。您最多需要重新运行2SAT求解器n次,其中n是变量的数量,并且由于2SAT解算器也是多项式时间,因此此解算器在多项式时间内运行。

最新更新