对称性解决sat的.ppt

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
对称性解决sat的

由对称性解2-SAT问题 2-SAT: 2-SAT就是2判定性问题,是一种特殊的逻辑判定问题。 2-SAT问题有何特殊性?该如何求解? 我们从一道例题来认识2-SAT问题,并提出对一类2-SAT问题通用的解法。 Poi 0106 Peaceful Commission [和平委员会] 某国有n个党派,每个党派在议会中恰有2个代表。 现在要成立和平委员会 ,该会满足: 每个党派在和平委员会中有且只有一个代表 如果某两个代表不和,则他们不能都属于委员会 代表的编号从1到2n,编号为2a-1、2a的代表属于第a个党派 输入n(党派数),m(不友好对数)及m对两两不和的代表编号 其中1≤n≤8000,0≤m ≤20000 求和平委员会是否能创立。 若能,求一种构成方式。 分析: 原题可描述为: 有n个组,第i个组里有两个节点Ai, Ai 。需要从每个组中选出一个。而某些点不可以同时选出(称之为不相容)。任务是保证选出的n个点都能两两相容。 (在这里把Ai, Ai 的定义稍稍放宽一些,它们同时表示属于同一个组的两个节点。也就是说,如果我们描述Ai,那么描述这个组的另一个节点就可以用Ai) 初步构图 如果Ai与Aj不相容,那么如果选择了Ai,必须选择Aj‘ ;同样,如果选择了Aj,就必须选择Ai’ 。 Ai Aj Aj Ai‘ 这样的两条边对称 我们从一个例子来看: 假设4个组,不和的代表为:1和4,2和3,7和3,那么构图: 矛盾的情况为: 存在Ai,使得Ai既必须被选又不可选。 得到算法1: 枚举每一对尚未确定的Ai, Ai‘ ,任选1个,推导出相关的组,若不矛盾,则可选择;否则选另1个,同样推导。若矛盾,问题必定无解。 此算法正确性简要说明: 由于Ai,Ai 都是尚未确定的,它们不与之前的组相关联,前面的选择不会影响Ai, Ai 。 算法的时间复杂度在最坏的情况下为O(nm)。 在这个算法中,并没有很好的利用图中边的对称性 先看这样一个结构: 更一般的说: 在每个一个环里,任意一个点的选择代表将要选择此环里的每一个点。不妨把环收缩成一个子节点(规定这样的环是极大强连通子图)。新节点的选择表示选择这个节点所对应的环中的每一个节点。 对于原图中的每条边Ai Aj(设Ai属于环Si,Aj属于环Sj)如果Si≠Sj,则在新图中连边: Si Sj 通过求强连通分量,可以把图转换成新的有向无环图,在这个基础上,介绍一个新的算法。 新算法中,如果存在一对Ai, Ai属于同一个环,则判无解,否则将采用拓扑排序,以自底向上的顺序进行推导,一定能找到可行解。 至于这个算法的得来及正确性,将在下一段文字中进行详细分析。 深入分析: 回忆构图的过程: 对于两个不相容的点 Ai, Aj,构图方式为: Ai Aj Aj Ai 前面提到过,这样的两条边对称,也就是说: 如果存在Ai Aj,必定存在Aj Ai 。 引理:原图具有对称传递性 等价于:Ai Ak Ak Ai 方便起见,之后“ ”代表这样一种传递关系 猜测1:图中的环分别对称 如果存在Ai,Aj,Ai,Aj属于同一个环(记作Si),那么Ai , Aj 也必定属于一个环(记作Si )。 一个稍稍复杂点的结构 其中红、蓝色部分分别为两组对称的链结构 分开来看,更加一般的情况,即下图: (说明:此图中Si有可能为Si的后代节点) 于是可以得到 推广2:对于任意一对Si, Si ,Si的后代节点与Si 的前代节点相互对称。 继而提出 猜测2:若问题无解,则必然存在Ai, Ai ,使得Ai, Ai 属于同一个环。 也就是,如果每一对Ai,Ai 都不属于同一个环,问题必定有解。下面给出简略证明: 先提出一个跟算法1相似的步骤: 如果选择Si,那么对于所有Si Sj,Sj都必须被选择。 而Si 必定不可选,这样Si’的所有前代节点也必定不可选(将这一过程称之为删除)。 由推广2可以得到,这样的删除不会导致矛盾。 每次找到一个未被确定的Si,使得不存在Si Si 选择Si及其后代节点而删除Si’及Si‘的前代节点。 一定可以构造出一组可行解。 因此猜测2成立。 算法2的流

文档评论(0)

sunshaoying + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档