查缺补漏:集和与非平凡属性

查缺补漏:集和与非平凡属性

前面的习题和知识点补充
Conjunctive normal form(CNF)是布尔逻辑的一种方法,它将公式表示为带有AND或or的子句的连词。由连词or AND连接的每个子句必须是文字或包含析取or运算符

子集和求和。
给定自然数s1,sn和一个整数W、 有一个子集加起来正好是W吗?
例如{1,4,16,64,256,1040,1041,1093,1284,1344},W=3754。
答案:对1 + 16 + 64 + 256 + 1040 + 1093 + 1284 = 3754.
评论对于算术问题,输入整数被编码为二进制的多项式归约必须是二进制多项式编码。

证明思路:给出3-SAT的一个实例Φ,我们构造了有解 iff Φ的子集和是可满足的。

建设给定3-SAT实例Φ,包含n个变量和m子句,形式为2n+2m十进制整数,每n+m位,如下所示:
用一个表格1,0表示T/F, X,Y,Z,以及C1,C2,C3(C1,C2,C3 都是用XYZ组成的)
宣称Φ是可满足的,当存在一个子集和W之和时。

Sat4j是一个功能齐全的布尔推理库,旨在将最先进的SAT技术引入Java虚拟机。
Sat4j是一个用于解决布尔满足和优化问题的java库。它可以解决SAT、MAXSAT、伪布尔、最小不可满足子集(MUS)问题。在Java中,我们的承诺不是以最快的速度解决这些问题(Java中的SAT解算器比C++中的SAT解算器慢约3.25倍),而是功能齐全、健壮、用户友好,并遵循Java设计准则和代码约定(使用源代码的静态分析进行检查)。通过大量使用decorator和strategy设计模式,该库的设计具有灵活性。此外,Sat4j是开源的,拥有双业务友好的Eclipse公共许可证和学术友好的GNU LGPL许可证。
为了了解使用Sat4j可以做些什么,您可能想看看Sat4j案例研究(草稿)。
多年来,Sat4j已被许多研究小组使用,尤其是在软件工程领域,并已被纳入许多约束编程、人工智能或软件验证课程。

支配集
支配集≈ 一组顶点,使得图要么在支配集中,要么是图中某个顶点的邻域
占主导地位的场景。
证明:“测试S是否为支配集”
boolean C(G, S)
foreach v ∈ (V (G) \ S)
dom ← false
foreach s ∈ S
if v and s are adjacent
dom← true
if dom is false
return NO
return YES

非平凡属性
非平凡属性意味着某些语言满足它,而另一些语言满足它不与给定语言相等就是这样一种属性或者成为一种常规语言。
赖斯定理说,判断一个特定TM识别的语言满足一个非平凡的条件通过在字符串w上运行TM M,然后为这些性质运行TM

问题:“M正好有5个状态”是可识别的非平凡性质语言吗?
解决方案:“M正好有5个状态”是一个语法属性,而引号里面内容是语义。因此,这个问题毫无意义。

问题: 如果“被一台只有5个字符的机器识别”呢?
解决方案:非平凡(non-trivial),因为:有一些语言可以被TMs识别,精确到5
状态,例如空语言;此外,还必须有无法识别的语言由一个只有5个状态的TM生成,因为:对于任何固定的字母表(例如,∑={a,b}),有无限多个字母
语言超过∑,但是5个状态且使用∑的TMs的数量是有限的(因此,这些TMs只能接受有限的多种语言)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值