【学习笔记】2-SAT

Page Views Count

适应性问题#

存在若干命题 pi,以及若干形如 xk1xk2xknsk,其中 xipi¬pi 其中一个。

要求是否存在一个命题的取值集合使得条件 s 均成立,其中每个条件最多包含 n 个命题,这样的问题称为 n-SAT 问题,n3 的情况已被证明为 NP-complete 问题。

图论建模#

考虑单个条件 pipj,这意味着 ¬pipj,¬pjpi,即如果其中一个命题不成立,那么为保证条件成立,另一命题必须成立。

考虑按照这种“逻辑推理”的方式连有向边,那么如果存在路径使得 pi 可达 ¬pi,则 pi 一定不成立,更进一步说,如果 pi¬pi 在同一强连通分量中,则一定没有合法解。

这个过程用 Tarjan 来实现。

对于其他形式的条件,也可以建出模型,主要就是一个若 A 则 B 的连边过程。

而如果钦定 pi 一定成立,实际就是 ¬pi 一定不成立,因此连边 ¬pipi 即可。

由于命题与其逆否命题的真假性相同,我们若 A 则 B 的连边同样一定可以连出若非 B 则非 A 的连边。

求一组合法解#

在判断有解基础上,我们得到一个 DAG,而如果 pi 成立,其必要条件是 pi 不可达 ¬pi,换言之如果 pi 对应强连通分量的拓扑序在 ¬pi 之后,则 pi 本身一定成立。

考虑证明这样单独考虑后全局也是合法的,设已知拓扑序有 tpi>t¬pi,tpj>t¬pj,假设 pi 可达 ¬pj,可知 t¬pi<tpit¬pi,由连边的对称性得 pj 同样可达 ¬pj,于是 t¬pjtpj<t¬pi,二者矛盾。故全局合法。

实际上不需要拓扑排序,因为我们本质是要知道是否可达,而如果存在强连通分量外的边 (u,v),而 v 先弹出,则 v 所在强连通分量的编号更小,相当于反向拓扑。所以只需要判断 pi 强连通分量编号是否比 ¬pi 小,如果是则取 pi,反之取 ¬pi

例题#

Luogu-P5782 POI 2001 和平委员会#

模板题,直接建模即可。

Luogu-P3825 NOI 2017 游戏#

如果不存在 x 类型,则可以每个命题只有真与假,正常建模可以求出答案。

如果枚举钦定 x 类型的选取方案,复杂度是 O(3d(n+m)),不能通过。

注意到枚举选取方案是小题大做的,因为我们的处理范围是剩下两个选择,因此可以改为枚举不选那个,这样枚举不选 A 或不选 B 两种,对于单个来说就覆盖了三种选择情况,即可以覆盖所有可能,复杂度是 O(2d(n+m))

参考资料#

作者:SoyTony

出处:https://www.cnblogs.com/SoyTony/p/Learning_Notes_about_2-Satisfiblity.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   SoyTony  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示