谓词抽象技术中循环反例的解决方法研究
MBA逻辑讲稿第五讲:逻辑错误类型和归纳类比推理

• 这段话通过归纳推理证明“高等学府中出不了 文学家”的观点,用的是简单枚举法,举出了 高尔基、巴尔扎克、雨果、曹雪芹、施耐庵、 梁斌、柳青、周立波’、高玉宝等著名作家没 有上过大学为例。但是世界上文学家何止千万? 仅举出几个例子就推出一般性结论就显得轻率。 事实上,当今文坛上,不论外国和中国,都有 些文学家是上过高等学府的,这种反例也不是 个别的。因此,就像根据几个反例就推出“文 学家都上过高等学府”的结论一样,仅根据几 个作家的经历推出“高等学府出不了文学家” 的结 论 也是 不 可靠 的 。犯 了 :以 偏 概全 或称 “轻率概括”的逻辑错误。
• 八、倒置因果 • 一个论证,如果将某一结果产生的因 作为结果而将结果作为原因来论证,即犯 了“倒置因果”的逻辑错误。例如: • 为了加快我国的发展,必须大力发展和 人轿车工业。因为发达国家中,私人大部 分有轿车。 • 这个论证中因果倒置,总体上说私人拥 有轿车是国家发达的结果,而不是原因。
• 九、判断逻辑错误的MBA联考逻辑试题举例 • MBA联考逻辑测试涉及到的判断逻辑错误的 试题,主要是两种基本类型。 • 一种是要求指出题干中逻辑错误的名称,选项 分别是逻辑错误的名称,要求指出哪一项是题干 中出现的逻辑错误。严格地说,MBA联考逻辑 试题应该尽量避免这种题型,因为它不要求考生 准确把握和分辨逻辑专业术语。 • 另一种是要求将题干和选项进行类比,找出哪 一选项中出现的逻辑错误和团不中出现的相同或 最为类似。
• 例(1)是一个推理,根据判断①、②,得 出判断③。例(2)也是一个推理,根据判 断①、②、③和④,得出判断⑤。 • 推理由前提、结论和推理形式构成。前 提是已知的判断,是整个推理的出发点, 通常叫做推理的根据或理由。结论是推理 所引出的新判断,是推理的目的和结果。 在前面的两个例子中,例(1)中的判断①、 ②和例(2)中的判断①、②、③、④都是 前提,而例(1)中的判断③和例(2)中的判 断⑤都是结论。
《数据挖掘》试题与答案

一、解答题(满分30分,每小题5分)1. 怎样理解数据挖掘和知识发现的关系?请详细阐述之首先从数据源中抽取感兴趣的数据,并把它组织成适合挖掘的数据组织形式;然后,调用相应的算法生成所需的知识;最后对生成的知识模式进行评估,并把有价值的知识集成到企业的智能系统中。
知识发现是一个指出数据中有效、崭新、潜在的、有价值的、一个不可忽视的流程,其最终目标是掌握数据的模式。
流程步骤:先理解要应用的领域、熟悉相关知识,接着建立目标数据集,并专注所选择的数据子集;再作数据预处理,剔除错误或不一致的数据;然后进行数据简化与转换工作;再通过数据挖掘的技术程序成为模式、做回归分析或找出分类模型;最后经过解释和评价成为有用的信息。
2. 时间序列数据挖掘的方法有哪些,请详细阐述之时间序列数据挖掘的方法有:1)、确定性时间序列预测方法:对于平稳变化特征的时间序列来说,假设未来行为与现在的行为有关,利用属性现在的值预测将来的值是可行的。
例如,要预测下周某种商品的销售额,可以用最近一段时间的实际销售量来建立预测模型。
2)、随机时间序列预测方法:通过建立随机模型,对随机时间序列进行分析,可以预测未来值。
若时间序列是平稳的,可以用自回归(Auto Regressive,简称AR)模型、移动回归模型(Moving Average,简称MA)或自回归移动平均(Auto Regressive Moving Average,简称ARMA)模型进行分析预测。
3)、其他方法:可用于时间序列预测的方法很多,其中比较成功的是神经网络。
由于大量的时间序列是非平稳的,因此特征参数和数据分布随着时间的推移而变化。
假如通过对某段历史数据的训练,通过数学统计模型估计神经网络的各层权重参数初值,就可能建立神经网络预测模型,用于时间序列的预测。
3. 数据挖掘的分类方法有哪些,请详细阐述之分类方法归结为四种类型:1)、基于距离的分类方法:距离的计算方法有多种,最常用的是通过计算每个类的中心来完成,在实际的计算中往往用距离来表征,距离越近,相似性越大,距离越远,相似性越小。
机器学习

机器学习(Machine Learning)是研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。
学习能力是智能行为的一个非常重要的特征,但至今对学习的机理尚不清楚。
人们曾对机器学习给出各种定义。
,学习是系统所作的适应性变化,使得系统在下一次完成同样或类似的任务时更为有效。
,学习是构造或修改对于所经历事物的表示。
从事专家系统研制的人们则认为学习是知识的获取。
这些观点各有侧重,第一种观点强调学习的外部行为效果,第二种则强调学习的内部过程,而第三种主要是从知识工程的实用性角度出发的。
机器学习在人工智能的研究中具有十分重要的地位。
一个不具有学习能力的智能系统难以称得上是一个真正的智能系统,但是以往的智能系统都普遍缺少学习的能力。
例如,它们遇到错误时不能自我校正;不会通过经验改善自身的性能;不会自动获取和发现所需要的知识。
它们的推理仅限于演绎而缺少归纳,因此至多只能够证明已存在事实、定理,而不能发现新的定理、定律和规则等。
随着人工智能的深入发展,这些局限性表现得愈加突出。
正是在这种情形下,机器学习逐渐成为人工智能研究的核心之一。
它的应用已遍及人工智能的各个分支,如专家系统、自动推理、自然语言理解、模式识别、计算机视觉、智能机器人等领域。
其中尤其典型的是专家系统中的知识获取瓶颈问题,人们一直在努力试图采用机器学习的方法加以克服。
机器学习的研究是根据生理学、认知科学等对人类学习机理的了解,建立人类学习过程的计算模型或认识模型,发展各种学习理论和学习方法,研究通用的学习算法并进行理论上的分析,建立面向任务的具有特定应用的学习系统。
这些研究目标相互影响相互促进。
自从1980年在卡内基-梅隆大学召开第一届机器学术研讨会以来,机器学习的研究工作发展很快,已成为中心课题之一。
人工智能试题及答案

人工智能试题及答案【篇一:人工智能经典试题及答案】ass=txt>2.8 设有如下语句,请用相应的谓词公式分别把他们表示出来:s(1) 有的人喜欢梅花,有的人喜欢菊花,有的人既喜欢梅花又喜欢菊花。
解:定义谓词dp(x):x是人l(x,y):x喜欢y其中,y的个体域是{梅花,菊花}。
将知识用谓词表示为:(?x )(p(x)→l(x, 梅花)∨l(x, 菊花)∨l(x, 梅花)∧l(x, 菊花))(2) 有人每天下午都去打篮球。
解:定义谓词p(x):x是人b(x):x打篮球a(y):y是下午将知识用谓词表示为:a(?x )(?y) (a(y)→b(x)∧p(x))(3) 新型计算机速度又快,存储容量又大。
解:定义谓词nc(x):x是新型计算机f(x):x速度快b(x):x容量大将知识用谓词表示为:(?x) (nc(x)→f(x)∧b(x))(4) 不是每个计算机系的学生都喜欢在计算机上编程序。
解:定义谓词s(x):x是计算机系学生l(x, pragramming):x喜欢编程序u(x,computer):x使用计算机将知识用谓词表示为:? (?x) (s(x)→l(x, pragramming)∧u(x,computer))(5) 凡是喜欢编程序的人都喜欢计算机。
解:定义谓词p(x):x是人l(x, y):x喜欢y将知识用谓词表示为:(?x) (p(x)∧l(x,pragramming)→l(x, computer))2.9 用谓词表示法求解机器人摞积木问题。
设机器人有一只机械手,要处理的世界有一张桌子,桌上可堆放若干相同的方积木块。
机械手有4个操作积木的典型动作:从桌上拣起一块积木;将手中的积木放到桌之上;在积木上再摞上一块积木;从积木上面拣起一块积木。
积木世界的布局如下图所示。
图机器人摞积木问题解:(1) 先定义描述状态的谓词clear(x):积木x上面是空的。
(x, y):积木x在积木y的上面。
人工智能试题及答案

人工智能试题及答案【篇一:人工智能经典试题及答案】ass=txt>2.8 设有如下语句,请用相应的谓词公式分别把他们表示出来:s(1) 有的人喜欢梅花,有的人喜欢菊花,有的人既喜欢梅花又喜欢菊花。
解:定义谓词dp(x):x是人l(x,y):x喜欢y其中,y的个体域是{梅花,菊花}。
将知识用谓词表示为:(?x )(p(x)→l(x, 梅花)∨l(x, 菊花)∨l(x, 梅花)∧l(x, 菊花))(2) 有人每天下午都去打篮球。
解:定义谓词p(x):x是人b(x):x打篮球a(y):y是下午将知识用谓词表示为:a(?x )(?y) (a(y)→b(x)∧p(x))(3) 新型计算机速度又快,存储容量又大。
解:定义谓词nc(x):x是新型计算机f(x):x速度快b(x):x容量大将知识用谓词表示为:(?x) (nc(x)→f(x)∧b(x))(4) 不是每个计算机系的学生都喜欢在计算机上编程序。
解:定义谓词s(x):x是计算机系学生l(x, pragramming):x喜欢编程序u(x,computer):x使用计算机将知识用谓词表示为:? (?x) (s(x)→l(x, pragramming)∧u(x,computer))(5) 凡是喜欢编程序的人都喜欢计算机。
解:定义谓词p(x):x是人l(x, y):x喜欢y将知识用谓词表示为:(?x) (p(x)∧l(x,pragramming)→l(x, computer))2.9 用谓词表示法求解机器人摞积木问题。
设机器人有一只机械手,要处理的世界有一张桌子,桌上可堆放若干相同的方积木块。
机械手有4个操作积木的典型动作:从桌上拣起一块积木;将手中的积木放到桌之上;在积木上再摞上一块积木;从积木上面拣起一块积木。
积木世界的布局如下图所示。
图机器人摞积木问题解:(1) 先定义描述状态的谓词clear(x):积木x上面是空的。
(x, y):积木x在积木y的上面。
逻辑学章节习题集答案(1-10章)

逻辑学章节习题集答案(1-10章)第一章一、请指出下列各段议论中“逻辑”一词的含义:1.电影《菊豆》中主人公的命运是符合生活的逻辑的。
答:规律、规律性。
2.说“知识越多越反动”,这真是奇怪的逻辑!答:理论、观点(贬义)。
3.语法、修辞、逻辑都是工具性的课程。
答:普通逻辑(传统形式逻辑)。
4.写文章要讲逻辑,就是说,要注意整篇文章、整篇说话的结构,开头、中间、结尾要有一种关系,要有一种内容的联系,不要互相冲突。
答:思维规律、规则。
5.从中学时期就训练好一种逻辑的头脑,以后无论学什么、干什么,都将受益无穷。
答:合乎思维规律、规则。
二、下列命题和推理中,哪些具有共同的逻辑形式?请用公式表示之。
1.所有鸟都是有羽毛的,驼鸟是鸟;所以,驼鸟是有羽毛的。
2.只有发展现代科学技术,才能推动生产力迅速发展。
3.每一个公民都要遵纪守法。
4.凡科学理论都是有用的,逻辑学是科学理论;所以,逻辑学是有用的。
5.任何金属都是有光泽的。
6.只有生产力迅速发展,我国的综合国力才能增强。
答:1与4具有共同的推理形式:所有M是P,所有S是M;所以,所有S是P。
2与6具有共同的命题形式:只有p,才q。
3与5具有共同的命题形式:所有S是P。
第二章概念一、指出下列概念的内涵和外延。
1.语言答:“语言”的内涵是指:以语音为物质外壳、以词汇为建筑材料、以语法为结构规律而构成的体系,是人们表达和交流思想的工具。
“语言”的外延是指:世界上古往今来存在的各种有声语言,如汉语、日语、法语、英语、德语等。
广义的“语言”还包括人工语言。
2.戏剧答:“戏剧”的内涵是指:文学、音乐、舞蹈、美术等各种艺术的结合体,是综合艺术。
它的外延是指:在舞台上上演的各种形式的戏剧。
按内容分有悲剧、喜剧、正剧;按表演方式分有话剧、歌剧、歌舞剧;按结构和容量分有独幕剧和多幕剧;按中外形式的不同分有戏曲、话剧、现代歌舞剧。
3.偶数答:“偶数”的内涵是指:自然数中能被2整除的数。
【计算机研究与发展】_优化模型_期刊发文热词逐年推荐_20140727
科研热词 错误保护 遗传算法 贝叶斯概率 视频编码 茶味觉信号 结点间流水 索引 粒子群优化 率失真优化 查询 权重循环 服务水平协商 服务分级 最小不确定性 数值并行计算 性能评价模型 循环变换 响应时间 可扩展性 可伸缩多媒体 动态profiling技术 加速比 决策支持系统 信源信道联合编码 传输 产品设计 互关联后继树 xpath xml web服务质量 web服务 r-d优化 lagrange乘数选择
科研热词 网格 滑动窗口 数据流 高层综合 马尔可夫模型 集合覆盖问题 隐马尔可夫模型 链路约束 部分重复计算划分 连接 近似连接 路径优化 贪婪算法 自组织网络 自愈 自主配置 聚类 群核 群体智能 编译优化 缓存管理 线性空间 索引结构 系统级设计 粒子群优化方法 粒子群优化 移动对象位置管理 移动agent 离散小波变换 神经网络 神经流形 相关分析 电压调整特征 生物启发 模糊c-means 查询处理 权值同步 时间同步 时间petri网 文档聚类 数据立方体 数据挖掘 数据并行 数字水印 搜索世界 恒虚警率 弱号检测 广义高斯分布 并行化编译器 局部性 密钥协商 实现模式
科研热词 推荐指数 网格计算 3 遗传算法 2 高斯混合模型 1 高斯核 1 高性能计算 1 隐markov模型 1 镜头边界监测 1 递归神经网络 1 进展 1 超级链接测试 1 设备复制 1 视频传输 1 自律计算 1 网络入侵检测 1 编译器 1 组合优化 1 组件测试 1 线性矩阵不等式(lmi) 1 约束 1 粒子群算法 1 粒子群优化 1 算法 1 简化模型 1 生灭过程 1 特征矢量 1 渐近稳定性 1 流量预测 1 模糊理论 1 样本 1 查询重写 1 权编码方法 1 最优化线性回归小波模型 1 时变时滞 1 无线业务汇聚 1 方差-时间图法 1 数据集成 1 支持向量机 1 描述模型 1 投影函数 1 扩展的horn逻辑模型 1 总费用 1 性能测试 1 快速贝叶斯算法 1 循环合并 1 循环优化 1 形式化验证 1 广义边图 1 并行优化 1 工作流 1 对等计算 1 安全协议 1 多重分形 1
人工智能模拟试题
人工智能模拟试题一(150分钟)1. 填空题(共12分,每小题2分)1)知识表示的性能应从以下二个方面评价:____________________和________________;后者又分二个方面______________和________________。
2) 框架系统的特性继承功能可通过组合应用槽的三个侧面来灵活实现,它们是______________________________________________________。
3)KB系统通常由以下三个部分组成:__________________________________________;KB系统的开发工具和环境可分为以下三类:____________________________________。
4)按所用的基本学习策略可以将机器学习方法划分为以下几类:________ _____________________________________________________________。
5) 主观Bayes方法将推理规则表示为P Q形式,称__________为先验似然比,__________ 为条件似然比,_________为规则的充分性因子。
6)自然语言理解中,单句理解分二个阶段:____________和____________,后者又分二个步骤:________________和_________________。
2、问答题(共20分,每小题5分)1)阐述示例学习所采用的逐步特化学习策略,并说明学习过程中正、反例的作用。
2)为什么要在框架系统中实行相容匹配技术?如何实现?3)阐述Xps的冲突解法和推理引擎,并说明综合数据库中事实元素的时间标签在冲突解法中起的作用。
4)什么是问题归约?问题归约的操作算子与一般图搜索有何不同?与或图启发式搜索算法AO*的可采纳性条件是什么?3、简单计算题(共35分,每小题7分)1)按书上图8.5中给定的文法规则,再追加2条:N →football, V →play;画出英语句子”The boy play little football”的句法分析树。
《马氏文通》代字章研究综述
《马氏文通》代字章研究综述摘要:自20世纪后半叶至21世纪,对《文通》代字章的研究成果显著,初步统计有5本著作,20余篇论文。
我们按三个方面综合分析并进行了整理:接读代字的归类问题;询问代字的使用情况;指名、指示代字的分类标准问题。
这也是学者们集中研究的问题域,其中有对立有统一:马氏把“其、所、者”归入接读代字合理与否,学者们各执己见;但均认为马氏分析询问代字的使用情况不全,并予以补充;且都指出指名代字、指示代字中有一部分应归入其他词类。
关键词:《马氏文通》;代字;综述中图分类号:i206文献标识码:a文章编号:1009-0118(2013)03-0326-02马氏在《马氏文通》(以下简称《文通》)里首次提出了“代字”的概念,认识到“用以指名”的字可以单独做一类,揭示了代字“替代”作用这一主要功能。
代字是马氏论述字类的一个重点,学者们因划分标准和所识语料等有差异,对马氏的分类有很多不同意见,主要有以下三个方面:一、接读代字的归类问题接读代字是代字章中研究的热点。
关于“其”“所”“者”是不是代字,学者们有两种对立的观点:一种是赞同马氏的分类,认为“其”“所”“者”是代字,以宋绍年为代表;另一种不赞同马氏的分类,认为“其”“所”“者”应归入其他词类,以杨树达为代表。
宋绍年在《研究》中肯定马氏把“其”分为接读代字和指名代字,认为这两个“其”字不具有同一性,动词前的“其”是接读代字,名词前的“其”是指名代字。
“所”字不是插在起词和动字之间的介接性成分,而是谓词的前附性成分。
并且认为马氏关于“动+者”的语法功能论述是准确的,但马氏仅关注“者”同读之起词的关系是不全面的,对表示自指的“者”也语焉不详,有时“者”并不提取的动词的任何成分,仅是使谓词性成分事物化、事件化。
肖瑜的《论“接读代字”的性质》指出了“其”“所”“者”三字因语法属性相同而被马氏归为接读代字一类,但三者在读中的位置不同,所以语法作用不同。
作者把接读代字的本质抽象为语义附着,语义附着的方式不同,导致了内部性质的不同和用法不同。
[试题]人工智能考试复习版
第一章概述1.人工智能主要研究用人工的方法和技术,模仿、延伸和扩展人的智能,实现机器智能。
人工智能的长期目标是实现人类水平的人工智能。
人工智能尚缺乏必要的理论。
在一些关键技术方面, 诸如机器学习、非单调推理、常识性知识表示、不确定推理等尚未取得突破性的进展。
人工智能对全局性判断模糊信息处理、多粒度视觉信息的处理是极为困难的。
人工智能还处于智能学科研究的早期阶段, 必须开展智能科学的研究。
智能科学研究智能的基本理论和实现技术,是由脑科学、认知科学、人工智能等学科构成的交叉学科。
2.认知是和情感、动机、意志等相对的理智或认识过程。
认知科学是研究人类感知和思维信息处理过程的科学, 包括从感觉的输入到复杂问题求解, 从人类个体到人类社会的智能活动, 以及人类智能和机器智能的性质。
3.人工智能的五个基本问题(1) 知识与概念化是否是人工智能的核心(2) 认知能力能否与载体分开来研究(3) 认知的轨迹是否可用类自然语言来描述(4) 学习能力能否与认知分开来研究?(5) 所有的认知是否有一种统一的结构4.思维是客观现实的反映过程,是具有意识的人脑对于客观现实的本质属性、内部规律性的自觉的、间接的和概括的反映。
5.智能是个体认识客观事物和运用知识解决问题的能力。
符号智能:以知识为基础,通过推理进行问题求解。
也即所谓的传统人工智能。
计算智能:以数据为基础,通过训练建立联系,进行问题求解。
人工神经网络、遗传算法、模糊系统、进化程序设计、人工生命等都可以包括在计算智能。
6.人工智能的研究方法:①逻辑学派②认知学派③行为学派7.推理:从一个或几个已知的判断(前提)逻辑地推论出一个新的判断(结论)的思维形式。
非单调推理:指的是一个正确的公理加到理论中, 反而会使预先所得到的一些结论变得无效了。
非单调推理过程:建立假设, 进行标准逻辑意义下的推理, 若发现不一致, 进行回溯, 以便消除不一致, 再建立新的假设。
定性推理:把物理系统或物理过程细分为子系统或子过程, 对于每个子系统或子过程以及它们之间的相互作用或影响都建立起结构描述, 通过局部因果性的传播和行为合成获得实际物理系统的行为描述和功能描述。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机工程与设计ComputerEngineering andDesign 2010,31(24) 5269 ・软件与算法・ 谓词抽象技术中循环反例的解决方法研究
梁加宾, 张来顺 (解放军信息工程大学电子技术学院,河南郑州450004) 摘要:为了解决谓词抽象技术面临的程序中循环体的每次迭代都至少需要一个谓词来实现的难题,提出了一个两阶段的 不完全判定过程,用来对一个包含循环的反例进行可行性模拟。通过给出的循环探测算法来从抽象模型中提取出包含循环 的反例,并用循环迭代的数量作为参数来确定模拟实例。实验结果表明,该方法在典型的缓冲溢出实例中的表现优于传统 的抽象求精方法 关键词:模型检测;谓词抽象;求精;反例;循环 中图法分类号:TP391 文献标识码:A 文章编号:1000—7024(2010)24—5269—04
Research of solving counterexamples with loops in predicate abstraction technology LIANG Jia—bin. ZHANG Lai—shun (Institute of Electronic Technology,PLA Information Engineering University,Zhengzhou 450004,China) Abstract:Predicate abstraction technique suffers from the fact that it requires at least one predicate for each iteration of a loop construct in the program.A new two—phase simulation semi—decision procedure for feasibility ofa counterexample with loops is proposed,which can extract looping counterexamples from the abstract model with proposed loop detection algorithm,and to parameterize the simulation instance in the number ofloop iterations.The experimental results show that the proposed method is better than the traditional abstraction— refinement method on verification of typical buffer overflow examples. Key words:model checking;predicate abstraction;refinement;counterexample;loop
0 引 言 软件模型检测是一种能够自动发现大型计算程序中的缺 陷的方法…。但是,软件模型检测技术仍然应用的不多,原因 是由于状态空间爆炸问题使软件验证工具缺乏可量测性。抽 象技术通过一种能够保持期望性质的方法将原始的具体状态 集合映射到一个较小的状态集合。谓词抽象 是常用的程序 系统状态空间缩减方法之一一。该技术通过SLAM 工具得到 了更好的发展。在谓词抽象方法中,数据通过跟踪特定的渭 词轨迹被抽象成另外的抽象数据。在抽象程序中每个谓词用 一个布尔变量代表,原始的数据变量被消去。通过此法得到 的布尔程序是原始程序的一个上界逼近。传统的方法首先是 抽象出一 个比较粗糙的模型,如果发现模型检测工具报告的 一条错误路径是不存在的,则利用错误路径来对抽象程序进 行求精,这个过程莺复进行直到没有虚假的错误路径被发现。 实际的循环步骤按照抽象一检测一求精方法“ 。抽象一检测一求精 方法的另一个重要的应用是软件模型检测工具BLAST 。 在大部分的应用中,这个技术的不足在于程序中每个循 环体的每次迭代至少需要一个谓词来实现。这导致了在模拟 和求精阶段中需要忽视程序中的循环。现有的模拟技术能够 精确地模拟抽象路径中的所有的循环迭代。大多数现有的求 精技术能够实现循环中更多的展开操作。关于循环体的信息 实际上包含在抽象模型中。然而,计算抽象模型的模型检测 工具不会输出包含循环的错误路径,这是由于它们的目的是 要得到尽可能短的反例。
1 背景知识 1.1谓词抽象和求精 基于反例的谓词求精方法大体如图1所示。 1.1.1 抽 象 利用抽象函数a将具体模型M映射到抽象模型M’。抽 象函数a将具体状态s∈S映射到抽象状态S’∈S’。用y来表示 a~,用来将… 个抽象状态映射到对应的一个具体状态集合。存 在抽象是一个可达保持转换来保证抽象转换关系一是一个程 序中具体状态关系一的上界逼近。考虑到使用效率问题,大 多数的应用都是采用一上界逼近。 给定一个谓词集合P,一个谓词抽象函数 ( )是这些谓词 的 最强布尔组合, 对应着 。抽象状态S ES 的变量对应在 集合P巾的谓词,并且通过 来进行计算。
收稿日期:2010—02一O1;修订日期:2010—04—03。 作者简介:梁加宾(1985一),男,山东日照人,硕士研究生,研究方向为信息管理系统; 张来顺(1963--),男,河南郑州人,硕士,教授,研 究方向为计算机应用技术。E—mail:tenanthui1985@sina.com 5270 2010,31(24) 计算机工程与设计Computer Engineering and Design 图1 两阶段模拟的反例引导的抽象求精方法 1.1.2验证抽象模型 模型检测工具搜索抽象模型M’中的状态空间来找出不 满足某个给定规范的状态。如果没有该类状态存在,则可以 证明规范表示的性质在原始模型M中满足,检测算法停止。 如果存在一个错误状态 ,那么模型检测工具返回一个反例, 用一系列的状态集合 。,.”,Sn r表示。S。 是一个初始状态,对于每
一个i,1≤i<n, 一 , 是一个错误状态。 1.1_3模拟 一个抽象反例是在具体模型M中真实存在的,当且仅当, 存在一系列对应的状态序列S,,S ,…,S ,其中 ∈ ’,1≤i≤n, c 以及存在一个具体的状态迁移关系S 一 ,1≤j<n。由于每一
个可行的具体路径都对验证有影响,因此只要求对应状态区 域相匹配就足够了。给出一个反例可行性最强后置条件的形 式化的定义。 定义1最强后置条件 一个状态的最强后置条件SP定义如F SP(x:=P)= 厂. x'.f[x'/x]A =e[x'/x]) SP(e)= .fAe 式中:e 卜一P中的所有x的自由出现用 代替。 假设, ,,表示抽象状态S 的一部分, 表示与对应的t(s 9 的具体状态。状态序列 ”, 的最强后置条件是SP(a 一, ):= SP( oSP( ̄一。o…oSP(a )。最后得到的量词可以被消去。直观 地,这种方法对应于路径到单一的静态任务形式(SSA)的转化。 公式SP(al,…, )(乃代表所有的在路径 --,S 执行定义的可达 状态。 定义2反例的可行性
一个反例是可行的当且仅当. ( 对于相应的具体状态 中 序列是可满足的。如果反例有一个不可实行的前缀,那么 这个反例是虚假的。 模型检测工具SATABS 将最强后置条件转换成布尔表达 式,并且利用不断增加的SAT求解器来确定路径展开过程中 产生的SAT实例。 1.1.4求 精 如果模拟过程产生一个虚假的反例P,则通过从抽象状态 M’中删除P来对M’进行求精。这个过程使用增加一个适当的 谓词集合来完成。NEWTON(模型检测工具SLAM中的一个 工具)使用启发式的方法来从SP(p)中提取这种谓词。McMillan 提出对于路径上的每个断点存在一个公式 被称为Craig插 值)能够精确地证明从 到 .是不可行 ’。这种方法被应用到 BLAST中。预处理分析能够确定一些可以分析的断点。分析 后得到的插值就可以被用作新的谓词。然而NEWTON和 BLAST都没有关注循环,只足用相同的方法将展开的循环作 为一般的不含有反复的反例进行分析处理。 1.2含有循环的程序抽象 传统的对如图2所示包含循环的程序使用谓词抽象的抽 象求精方案比较少。对于图2所示的程序,SLAM、BLAST和 早期版本的SATABS需要至少1000个求精步骤才能成功地通 过循环计数器增加谓词(如图3所示)来产生一个可行的反例。 本文提出了一个对抽象模型中包含的循环的探测算法和一个 新的两阶段模拟方法。 抽 象 水 皿 图2程序例子 (1) (2) …(999)迭代次数 图3在图2中程序的反复求精过程 2含有循环的抽象反例 2.1包含循环的反例 图4(a)是一个布尔程序:它是图2中程序以断言谓词 (i<1000)和循环条件(i≤looo)为条件抽象出来的抽象模型。对 于这个程序,用第一章中提到的模型检测工具得到反例如图 4(b)所示。通过检查抽象模型M 得出,抽象模型M’包含一条 贯穿于同一个程序的具有潜在反复的路径,即一个虚假反例。 图4(c)说明了反例的多种情况。被重复标记Il:和:ll标注的 序列可能被任意次重复迭代。对应于循环右侧的状态序列表 示能够到达错误状态的路径。 bool b1:/ i<1000 / LI: b2 boo1 b2: i≤1000 / 2:6l b2 L_] L1:6l,b2:=1,1; L1:6l b2 广I 2L ̄:bj b2广L 2:b l L2: !b2)goto L7; 厶:61 b lf L。:6l f2 厶=Il ,‘DlD —— If 厶。:6.b :11f厶:6—6: L3:assert(b1); 厶:6t b L :skip; —— 厶:6.b 厶:6l,b2:: , ; —— LJ L_J厶:互b 厶:6t b: L6:gotoL2: —— 厶:6.b L,:skip; 厶: b 【 (a)布尔程序 (b)反例 (c)含有循环的反例 图4含有循环的反例 图5说明了图4(c)的反例组成。循环的每一次迭代都访 问相同的程序部分。由于在L 部分的非确定性分配,使最后 的迭代在另外~个与前一状态不同的状态序列上进行。图5 中的反例表示~个常规反例的无穷集合,对应于一条图2中 程序在1000次迭代之后违反断言的可行性路径。