2-SAT,表示为一系列约束 \(x_i\; or\; x_j\) 即两个变量中至少选择一个为真。
那么,假如其中一个选择了假,另一个一定要选择为真。
拆点,把变量 \(x_i\) 取真用点 \(V_i\) 表示,变量 \(x_i\) 取假用点 \(V_{i+n}\) 表示。那么上面的一个约束就连边:\((V_{i+n},V_j\) 和 \((V_{j+n},V_i\) (假点向另一个真点连边)。然后对整个图进行强连通缩点,假如一个图的同一个变量处在同一个强连通分量,那么必定无解。否则得到一个DAG,DAG的出边表示,假如当前点选择,那么出边点必选(所以一个变量必须同时为真或者同时为假就是无解)。否则对于一个变量,选择其为真或者为假中,拓扑序较大的那一个就有解。
标签:连边,图论,DAG,变量,一个,选择,SAT 来源: https://www.cnblogs.com/purinliang/p/14413800.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。