程序约束论文-王奎

程序约束论文-王奎

导读:本文包含了程序约束论文开题报告文献综述及选题提纲参考文献,主要关键词:代码搜索,语法语义,分支结构,语义等价

程序约束论文文献综述

王奎[1](2019)在《分支结构程序的约束转换及语义等价》一文中研究指出通过复用已有的开源代码或内部遗留代码,可极大地提高软件开发效率、降低开发成本,而准确地搜索到所需代码是代码复用的前提和基础。当前基于"输入/输出"语义匹配的代码搜索方法解决了关键字搜索中因为语义歧义存在代码搜索准确度不高的问题,但仅仅考虑了顺序结构代码的处理。在已有工作基础上,重点关注分支结构代码的基于"输入/输出"匹配的语义搜索方法。首先给出不同分支结构的语法定义及形式化描述。其次,定义分支结构到顺序结构的语法转化规则、语义上的约束转换规则,以及转换过程的语义等价性证明。最后给出上述语法转换的实现算法。理论分析及实例表明,该方法是合理、可行的,将为代码搜索提供方法指导。(本文来源于《无线通信技术》期刊2019年02期)

MOHAMMED,ABDO,MOHAMMED,HAMID(汉丁)[2](2019)在《基于约束程序方法的数独问题求解研究》一文中研究指出数独是一个风靡世界的基于逻辑的填数字游戏,因为非常流行吸引了世界各地的爱好者。从计算的角度来看,数独也是一个如我们所期望的属于NP完备问题的集合,也就是说,理论上我们不能期望找到一个多项式复杂度的算法来求解这个问题。约束程序(CP)是建模和求解复杂组合问题的有力工具(一般表现为决策支持)。约束程序是人工智能领域重要的研究方向,人们越来越依赖它去求解日常的调度、规划和分配问题。目前已提出了各种复杂的传播方法,但不幸的是,很多人没有意识到它本质上是约束程序的方法。在本文中,我们试图在对一个视点约束因素之外的问题进行识别的基础上,展示出要求解问题的模型,然后创建问题,然后降低对一个问题实例挑战的目标维度。这个衡量标准似乎与分数(例如,简单到复杂)很好地关联起来,因为众所周知的原因,这个数量被分配给了难解的实例。我们还展示了该模型如何执行支架加固,包括冗余约束,以及是否可以继续使用二部分配算法。从理论的角度来看,雅图已经通过将数独问题归结为拉丁方问题(雅图2003年)证明了数据问题是NP完备问题。Simonis(2005)研究了一个涉及主要9×9数独问题及其相关传播算法(通常完备基于发现匹配到二部图)之间约束的数字模型。他在对比他们的能力时,模仿了一系列难度不同的的谜题。但我们的策略不同于Simonis的策略,希望我们在模仿与约束相关的至关重要的模型之间不受阻碍,然后单独使用接近频繁的规则生成算法(Simonis提出方法的子集)。与西蒙斯不同的是,我们对与游戏相关的交互因素进行了细致的分析,并针对日益增加的复杂性,设计了一种“提示”功能,以引导人类游戏爱好者在与之相适应的交互中享受游戏。数独是一个着名的谜题,经常反复出现在一系列关于报纸、书籍和困惑的杂志中。虽然美国出现于20世纪70年代晚期,但这个游戏是在80年代的日本开始大规模流行。在最简单的类型中,数独问题可以概述如下:给定一个分为n2个不同n×n框的n2×n2网格,目的是填充网格,使满足3个独立的要求:⑴每行单元格包含整数1到n2,恰好一次;⑵每列单元格包含整数1到n2,恰好一次;⑶每个n×n框包含整数1到n2,恰好一次。本文在绪论部分讨论数独问题的历史和约束程序如何处理它的问题;第二部分简要介绍了约束满足问题(CSP),它是由一系列多样的方法来求解的,从自动机理论到蚁群优化算法,是计算机科学及其他许多领域感兴趣的课题。这些联系极大地增加了主题的丰富性,但在很大程度上超出了本章的范围。在这里,我们将重点讨论作为人工智能的一个分支的约束满足的建立所涉及的基本方法。在谈到回溯之后,回溯是约束满足问题的基本“完备”搜索方法,即如果存在一个约束满足问题,就可以保证能找到一个求解方案。在1965年,Golomb和Baumert,在题为“回溯编程”的JACM论文中发现该方法已经被独立发现很多次。在过去十年,约束程序是一种有趣且可行的编程方法。在这种方法中,编程过程仅限于生成需求(即“约束”),并通过通用方法和特定域的方法来找到满足这些需求的解。在约束满足领域中,已经研究了二十年来寻找满足约束解的有用技术。其中最重要的一个是约束传播,一个将约束满足问题减少到另一个等价但“简单”的问题的过程。在第叁部分中,将数独问题作为约束满足问题,数独是在部分填充的9x9网格上玩的一个难题。任务是使用1到9之间的数字来完成分配,使得每行、每列和每个主要3x3块中的数字都是互相不同的。像许多逻辑难题一样,数独的挑战不仅仅在于找到一个求解方案。所有已成的谜题均有一个独特的求解方案,其任务是在没有猜测的情况下找到它,也就是没有搜索。在搜索中,比较多个传播方案,看看它们可以通过约束传播单独求解多少问题实例。基本的数独问题可以通过混合所有不同的约束条件,用约束程序来建模。在第四部分讨论使用CP交互式求解数独问题,最初名为填数字的数独字谜曾由Howard Garns在1979年提出,最初出现在《戴尔铅笔字谜》和《文字游戏》杂志上。Nikoli于1986年开始出版数独游戏,并在日本注册了数独这个名字。最近,美国各地的报纸都开始每天出版智力游戏。这个游戏已经非常流行,许多网站都致力于这个难题。一些程序已经在互联网上开发和发布,允许用户求解数独难题。这些实现方式差异很大。有些程序对玩家不开放。有些则提供建议,使用一组松弛地基于逻辑的规则。最后,还有一些当规则无法求解难题时会求助于回溯搜索。这些规则通常是求解难题时总结观察结果所得的“技巧”。数独游戏有很多变形。虽然我们计划扩展接口来处理大约10种难题变形,但是我们当前的实现只处理基本问题。这是一个9×9的网格,其中网格中的一些单元格填充了[1..9]中的数字。任务是通过在每个空单元格中放置1到9之间的数字来完成网格,同时确保每个列、行或构成网格的9个3×3“块”中恰好出现一个数字且不重复出现。适定数独只有一个求解方案(Simonis2005)。在第五部分中,创建一个数独求解器;该程序旨在演示如何使用回溯算法来求解数独问题。这并不是关于使用Visual Basic的课。只是选择Visual Basic作为一个平台来使用,因为它非常直接地在上面创建了一个Windows应用程序。但关于Visual Basic的知识不是必要的。理解面向对象编程是明智的。调查讲述了所有不同约束的不同相容性方法。我们将它们与上面的一些冗余约束结合起来,在表中创建传播方案。传播方案中,存在在评估中我们没有找到区分这两个方案的示例。我们决定在不同的已发布问题实例集上测试我们的程序。在英国,几家报纸出版了他们的每日数独问题,并出版了这些问题的合集。我们使用《泰晤士报》、《每日电讯报》、《卫报》、《独立报》、《每日邮报》和《太阳报》,还有专门研究数独游戏的杂志,特别值得一提的是日本益智出版商Nikoli,他的益智游戏也出现在英国。此外,还有一些关于谜题实例的书籍。通常,每一个实例都会由益智设计师给出一个问题难度。在讨论板上,人们经常抱怨这种难度被随意分配的方式。此外,我们还发现了450和7611个拼图的集合,它们只有17个预设,这是目前已知的适定问题的最小预设数。这些不按难度分类。这个系列主要包含非常困难的问题。这些程序在没有搜索的情况下似乎很好地找到了求解方案,除了2个“困难”和17个“超级”难题。这些难题要么需要更有力的推理,要么需要某种形式的搜索。使用修剪步骤测试值在这些示例中非常有效。我们可以看到,所有的问题都可以通过使用修剪技术和超弧相容性相结合来求解,几乎所有的问题都可以通过结合边界一致性和修剪来求解。只要有足够的预设值,只使用前向检查和修剪就可以很好地工作。在最小化问题上,它几乎总是找不到求解方案。我们还对已发布难题的局部最小化感兴趣,即不包含冗余提示。本文展示了一些测试的结果。大多数已发布的问题不是局部最小化的,它们通常包含10个以上的冗余提示,这些提示可以在不丢失求解方案唯一性的情况下删除。文中实例15、16是一个例外,它们搜索局部最小值。从实例17开始的大部分难题也是最小化的。我们用一个简单的、稳定的选择程序计算了这个缩减。我们搜索一个可以消除的线索;如果找到了一个提示,我们提交这个选择,并尝试找到额外的冗余提示。该方法不保证最小约简,而是可能会导致局部最小实例。我们已经看到,通过模型的不同变体,我们可以求解不同难度的难题实例。我们也可以使用同样的技术来生成谜题吗?这种方法既可以产生适定的局部最小化问题,也可以用来寻找给定难度等级的无搜索难题,这些难题在不丢失无搜索属性的情况下无法进一步减少。这种自下而上的问题生成“在2000年AAAI生成满足问题实例”中为CSP和SAT求解器生成拟群完备的可解问题实例。在这种情况下,我们从一个完整的拟群开始,从网格中删除一些值,并留下一个可行的拟群完备问题。生成的问题可能有多个求解方案,但在给定的上下文中这是可以的。由于我们对适定问题感兴趣,所以只要求解方案保持唯一性,我们就必须一个接一个地执行删除步骤。(本文来源于《吉林大学》期刊2019-04-01)

朱福勇[3](2018)在《论民事法官询问范式及程序约束》一文中研究指出作为一种后位的、补充性查证方式与手段,法官询问对矫正辩论权主义与处分权主义的缺陷,发现案件真实、促进法官心证确信功效显着。由于我国法官询问缺乏程序法上的规范和约束,导致法官"独白"式询问"策略化"、内心确信的"个性化",一定程度上异化为少数法官与当事人私下交易、权力寻租和获取不法利益之手段。对话逻辑是法官询问的内在依据,在型塑法官询问对话理念、遵循对话原则,从对话条件、对话程度和不当对话救济方面约束法官询问行为的基础上,确保法官与当事人、其他诉讼参与人之间就待证事实展开理性对话,并展现于裁判文书之中,得出公正、合理和当事人乃至于民众可接受的裁判事实和结果,以满足民众对司法公正的正常期待。(本文来源于《法学评论》期刊2018年06期)

李玉翠[4](2018)在《ICU患者约束带护理中护理程序的应用分析》一文中研究指出目的:分析ICU患者约束带护理中护理程序的应用。方法:选择本院于2016年1月至2016年12月收治的50例ICU患者为研究主体。划分为A组和B组,均是25例。均给予约束带护理,A组实施系统化护理程序,B组给予常规护理。对比护理效果。结果:A组的医疗纠纷发生率为4.0%,B组为28.0%,对比差异明显,有统计学意义(P<0.05)。A组的不良事件发生率为12.0%,B组为40.0%,对比有差异,有统计学意义(P<0.05)。结论:为ICU患者行规范化约束带护理可减少医疗纠纷,并能降低护理期间的不良事件发生率。(本文来源于《中外女性健康研究》期刊2018年18期)

Deng,CHEN,Yan-duo,ZHANG,Wei,WEI,Rong-cun,WANG,Xiao-lin,LI[5](2018)在《一种用于程序约束挖掘的过采样方法(英文)》一文中研究指出自动协议挖掘是获取精确而完备的API使用协议的有效方法。然而,与其它数据挖掘应用类似,自动协议挖掘方法需要足够多训练数据(即对象使用场景)作为输入。虽然通过增加程序的规模可提取更多数量的对象使用场景,但这会导致程序分析运行时开销较大。本文针对面向对象程序提出一种基于继承关系的对象使用场景过采样方法。给定一个面向对象程序p,一般情况下,执行p所能获得的对象使用场景数不超过运行时实例化的对象数。而本文方法可获得多达上述n倍的对象使用场景,其中n为程序p中一般对象使用场景的平均父类数。为了验证效果,在前期API使用协议动态挖掘原型工具ISpecMiner中集成上述方法并开展实验研究。实验采用扩展后的ISpec Miner从多个实际的程序中挖掘API使用协议。结果显示,采用本文方法获得的对象使用场景数是一般化方法的1.95倍。不仅如此,对比实验结果表明本文方法有利于挖掘更加精确而完备的API使用协议。特别值得关注的是,本文方法适用于无法实例化的类并挖掘出其API使用协议。这类API使用协议对于验证软件架构、程序说明和理解具有重要意义。虽然本文方法会增加一定的运行开销,但其仍在可接受范围内。(本文来源于《Frontiers of Information Technology & Electronic Engineering》期刊2018年06期)

侯清芳[6](2018)在《配气凸轮型线参数有约束优化方法及程序开发》一文中研究指出配气机构作为内燃机的重要组成部分,其功用是按照内燃机的工作循环和发火次序的要求,使进、排气门定时开启和关闭,保证气缸中及时进入新鲜充量并保证废气及时排出。配气机构设计的合理与否很大程度的影响着内燃机工作的经济、动力和排放等性能。而凸轮型线作为内燃机配气机构设计的核心内容,其设计的合理与否十分重要。本文依据内燃机配气机构凸轮型线设计的理论和原则,按照配气凸轮型线运动学设计、运动学优化和动力学设计与校验的设计流程,应用Visual Studio C#进行了配气凸轮型线参数有约束的优化方法及程序开发。研究内容如下:首先,进行软件整体模块搭建,包括:凸轮型线运动学设计模块搭建;凸轮型线运动学有约束优化模块搭建;配气机构动力学设计与校验模块搭建。接下来,针对软件各模块进行设计和程序编写,详细内容如下:(1)凸轮型线运动学设计模块搭建。主要内容包括:典型凸轮型线设计方法的程序编写与界面设计;凸轮型线的运动学曲线输出;凸轮型线设计评价参数和运动规律详细数据的输出。其中,凸轮型线的设计方法包括:项数不同的高次方多项式凸轮型线;高次方与直线段组合型凸轮型线。(2)凸轮型线运动学有约束优化模块搭建。主要内容包括:针对高次方多项式凸轮型线的复合形法优化方法的程序编写与界面设计;优化后凸轮型线的设计参数和运动学曲线查看;优化后凸轮型线的评价参数和运动规律详细数据输出。此部分以缩短凸轮型线的设计周期为目的,以凸轮型线丰满系数为目标函数,以凸轮型线函数的幂指数为设计变量,以曲率半径、凸轮型线加速度峰值等为约束条件,以复合形法为优化方法,编写程序,以获得要求范围内的最佳凸轮型线,达到优化目的。(3)配气机构动力学设计与校验模块搭建。主要内容包括:气门实际运动规律的计算程序编写与界面设计;气门开启与落座相关参数查看;气门运动过程中是否存在飞脱现象的判定;气门实际运动规律曲线查看及详细数据输出。此部分针对配气机构工作过程中因弹性变形导致气门实际运动规律与理论设计规律存在偏差的问题,以配气机构单质量模型为基础,以四阶龙格—库塔数值方法为核心算法,以凸轮型线的动力学校验和配气机构的动力学设计为目的,编写程序,以判断配气机构的设计是否存在飞脱和气门落座速度过大等不良情况,进而确定配气机构的设计是否合理。最后,对所开发的程序进行合理化验证。针对凸轮型线运动学设计模块,应用AVL/Excite Timing Drive中Cam Design部分,将其仿真得到的凸轮型线运动规律与本课题所开发软件计算得到的凸轮型线运动规律加以对比,验证程序此模块的合理性;针对配气机构动力学设计与校验模块,将某发动机配气机构的动力学试验结果与本课题所开发软件的仿真计算结果进行对比,验证此动力学设计及校验模块的合理性。(本文来源于《吉林大学》期刊2018-06-01)

靳娜娜[7](2018)在《基于约束求解的并发程序错误预测方法研究》一文中研究指出为保证正确性,并发程序的执行过程中必须保证存在一致性关系的共享变量得到原子性执行。若对存在一致性关系的共享变量的访问语句与其他线程中的语句产生预期之外的交织,且执行结果与任意这些语句的原子执行结果均不相同,则产生了原子集合序列化违背。原子集合序列化违背是一种常见的并发缺陷,可导致共享变量读写值不一致、读写值丢失等严重后果。现有的原子集合序列化违背探测技术大多采用较为保守的并发程序模型,仍存在漏报率和误报率较高的问题。为提高原子集合序列化违背的探测能力,本文提出一种基于约束求解的原子集合序列化违背探测方法。该方法在程序执行过程中动态收集程序的执行轨迹,然后根据最大因果模型和收集的执行轨迹推导出其他的可执行交织,并在这些可执行交织中探测在原执行轨迹中未暴露的原子集合序列化违背,将并发执行的可行性要求转化为一组约束条件,从而将原子集合序列化违背的探测问题转化为约束求解问题。该方法考虑了程序控制流信息,扩大可搜索的交织空间,提高了工具的探测能力,降低了漏报率;且该方法是基于约束求解的探测方法,因此求解出的原子集合序列化违背一定是真实的,不产生误报。在上述工作的基础上,本文设计并实现了基于约束求解的原子集合序列化违背探测工具ASVDetector,并与并发错误探测工具PECAN进行比较。实验结果表明:ASVDetector可有效探测原子集合序列化违背,在13个被测程序中,ASVDetector探测出的原子集合序列化违背个数是PECAN的约2倍,显着降低了漏报率,且不存在误报;对分支事件可行性松弛可进一步提高其探测能力,降低漏报率。(本文来源于《东南大学》期刊2018-06-01)

武鹏[8](2018)在《约束程序在稳定匹配上的应用》一文中研究指出稳定匹配问题在1962年由诺贝尔奖获得者埃尔文·罗斯(Alvin Roth)和罗伊德·沙普利(Lloyd Shapley)提出。匹配问题是将一组对象与另外一组对象进行匹配,在匹配的过程中受到偏好序列和容量的约束。偏好序列是某个对象对其他对象的偏好排序,对象的偏好序列可能是完全的(对所有对象进行偏好排序),也可能是非完全的(仅对部分对象进行偏好排序)。容量表示对象至多可以匹配其他对象的数目。稳定性是评价匹配好坏的重要标准之一,当一个匹配满足稳定性的条件时,就认为该匹配是稳定的匹配,否则为不稳定的匹配。匹配问题在实际生活中有许多应用,如美国医院/医生匹配问题、波士顿小学招生问题、纽约高中招生问题和新英格兰肾移植交换问题。稳定婚姻问题(Stable Marriage,SM)、医院/医生问题(Hospitals/Residents,HR)和稳定室友问题(Stable Roommates problem,SR)被称为叁大经典稳定匹配问题。本文主要研究的内容是基于完全偏好序列和非完全偏好序列的稳定婚姻问题和稳定室友问题的约束建模和求解。约束满足问题(Constraint Satisfaction Problems,CSPs)是人工智能领域一个重要的研究方向,相关技术被广泛应用到配置、调度及组合问题求解等领域。我们可以将一个稳定婚姻问题或者稳定室友问题定义为约束满足问题,将求解稳定匹配问题转换为求解约束满足问题。目前,已经存在很多成熟的求解约束满足问题的求解器,如Ilog Solver、Gecode、Choco、Mistral等。其中Choco求解器是一个求解约束满足问题和优化问题的java库。它提供了一套比较完整的建模语言,能够简单、快速地对问题进行建模和求解。因为Choco求解器易于使用和扩展的特点,被广泛的应用于教学和研究中。本文的主要工作如下:(1)本文主要对稳定匹配问题进行研究。首先,介绍了稳定婚姻问题;然后,介绍了稳定婚姻问题的几种常见变型,并给出了求解这类问题的一般解法;最后介绍了医院/医生问题和求解的算法。(2)深入分析和研究Choco求解器和约束程序。首先,介绍了Choco求解器的结构和主要用到的jar包;其次,介绍了如何使用Choco求解器进行简单的建模和求解;再次,介绍了约束满足问题和约束程序;最后,描述了约束传播的机制。(3)主要对求解稳定匹配问题的约束模型进行了改进。首先描述了CP模型的特点;其次分析了CP约束模型存在的缺点;再次,针对原模型没有对初始偏好序列进行预处理,和执行弧相容算法后偏好序列中仍然存在大量冗余的数据的缺点提出对应的改进算法;最后将改进后的模型和原模型进行实验对比并给出结论实验表明,我们的算法改进具有明显的效果。(本文来源于《吉林大学》期刊2018-04-01)

王吉春[9](2018)在《代替考试罪司法证明困境及路径探析——从实体法与程序法的双重约束下谈起》一文中研究指出2015年《刑法修正案(九)》施行两年以来,代替考试罪案件的数量一直较少。这一方面是本罪刑法威慑力发生了效用,但是同时也意味着代替考试罪的司法证明受到刑法所确定的入罪标准与刑事诉讼法所确定的证明标准的双重约束。在全民诚信体系建设过程中,尚需在严格适用刑法与刑事诉讼法的基础上,加强对代替考试罪证明路径的严格把握,适度调整证明机制,从而实现打击犯罪与保障人权的均衡。(本文来源于《河北法学》期刊2018年03期)

刘慎辉,李飞[10](2018)在《终结本次执行程序的约束机制》一文中研究指出基于执行工作中的积案问题以及各地法院在司法实践中的探索,借鉴我国台湾地区的债权凭证制度,《民诉法解释》第519条确立了终结本次执行程序制度,在制度层面为大量的无财产可供执行案件预留出口,这也是实现执行程序良性循环及我国执行体制转型的内在要求。但是,与以权利判断为特征的审判程序相比,作为以权利实现为特征的执行程序,在权利未予实现之前而终结,其制度正当性备受关注。为增强终结本次执行程序制度在司法实践中的可操作性,最(本文来源于《人民司法(应用)》期刊2018年01期)

程序约束论文开题报告

(1)论文研究背景及目的

此处内容要求:

首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。

写法范例:

数独是一个风靡世界的基于逻辑的填数字游戏,因为非常流行吸引了世界各地的爱好者。从计算的角度来看,数独也是一个如我们所期望的属于NP完备问题的集合,也就是说,理论上我们不能期望找到一个多项式复杂度的算法来求解这个问题。约束程序(CP)是建模和求解复杂组合问题的有力工具(一般表现为决策支持)。约束程序是人工智能领域重要的研究方向,人们越来越依赖它去求解日常的调度、规划和分配问题。目前已提出了各种复杂的传播方法,但不幸的是,很多人没有意识到它本质上是约束程序的方法。在本文中,我们试图在对一个视点约束因素之外的问题进行识别的基础上,展示出要求解问题的模型,然后创建问题,然后降低对一个问题实例挑战的目标维度。这个衡量标准似乎与分数(例如,简单到复杂)很好地关联起来,因为众所周知的原因,这个数量被分配给了难解的实例。我们还展示了该模型如何执行支架加固,包括冗余约束,以及是否可以继续使用二部分配算法。从理论的角度来看,雅图已经通过将数独问题归结为拉丁方问题(雅图2003年)证明了数据问题是NP完备问题。Simonis(2005)研究了一个涉及主要9×9数独问题及其相关传播算法(通常完备基于发现匹配到二部图)之间约束的数字模型。他在对比他们的能力时,模仿了一系列难度不同的的谜题。但我们的策略不同于Simonis的策略,希望我们在模仿与约束相关的至关重要的模型之间不受阻碍,然后单独使用接近频繁的规则生成算法(Simonis提出方法的子集)。与西蒙斯不同的是,我们对与游戏相关的交互因素进行了细致的分析,并针对日益增加的复杂性,设计了一种“提示”功能,以引导人类游戏爱好者在与之相适应的交互中享受游戏。数独是一个着名的谜题,经常反复出现在一系列关于报纸、书籍和困惑的杂志中。虽然美国出现于20世纪70年代晚期,但这个游戏是在80年代的日本开始大规模流行。在最简单的类型中,数独问题可以概述如下:给定一个分为n2个不同n×n框的n2×n2网格,目的是填充网格,使满足3个独立的要求:⑴每行单元格包含整数1到n2,恰好一次;⑵每列单元格包含整数1到n2,恰好一次;⑶每个n×n框包含整数1到n2,恰好一次。本文在绪论部分讨论数独问题的历史和约束程序如何处理它的问题;第二部分简要介绍了约束满足问题(CSP),它是由一系列多样的方法来求解的,从自动机理论到蚁群优化算法,是计算机科学及其他许多领域感兴趣的课题。这些联系极大地增加了主题的丰富性,但在很大程度上超出了本章的范围。在这里,我们将重点讨论作为人工智能的一个分支的约束满足的建立所涉及的基本方法。在谈到回溯之后,回溯是约束满足问题的基本“完备”搜索方法,即如果存在一个约束满足问题,就可以保证能找到一个求解方案。在1965年,Golomb和Baumert,在题为“回溯编程”的JACM论文中发现该方法已经被独立发现很多次。在过去十年,约束程序是一种有趣且可行的编程方法。在这种方法中,编程过程仅限于生成需求(即“约束”),并通过通用方法和特定域的方法来找到满足这些需求的解。在约束满足领域中,已经研究了二十年来寻找满足约束解的有用技术。其中最重要的一个是约束传播,一个将约束满足问题减少到另一个等价但“简单”的问题的过程。在第叁部分中,将数独问题作为约束满足问题,数独是在部分填充的9x9网格上玩的一个难题。任务是使用1到9之间的数字来完成分配,使得每行、每列和每个主要3x3块中的数字都是互相不同的。像许多逻辑难题一样,数独的挑战不仅仅在于找到一个求解方案。所有已成的谜题均有一个独特的求解方案,其任务是在没有猜测的情况下找到它,也就是没有搜索。在搜索中,比较多个传播方案,看看它们可以通过约束传播单独求解多少问题实例。基本的数独问题可以通过混合所有不同的约束条件,用约束程序来建模。在第四部分讨论使用CP交互式求解数独问题,最初名为填数字的数独字谜曾由Howard Garns在1979年提出,最初出现在《戴尔铅笔字谜》和《文字游戏》杂志上。Nikoli于1986年开始出版数独游戏,并在日本注册了数独这个名字。最近,美国各地的报纸都开始每天出版智力游戏。这个游戏已经非常流行,许多网站都致力于这个难题。一些程序已经在互联网上开发和发布,允许用户求解数独难题。这些实现方式差异很大。有些程序对玩家不开放。有些则提供建议,使用一组松弛地基于逻辑的规则。最后,还有一些当规则无法求解难题时会求助于回溯搜索。这些规则通常是求解难题时总结观察结果所得的“技巧”。数独游戏有很多变形。虽然我们计划扩展接口来处理大约10种难题变形,但是我们当前的实现只处理基本问题。这是一个9×9的网格,其中网格中的一些单元格填充了[1..9]中的数字。任务是通过在每个空单元格中放置1到9之间的数字来完成网格,同时确保每个列、行或构成网格的9个3×3“块”中恰好出现一个数字且不重复出现。适定数独只有一个求解方案(Simonis2005)。在第五部分中,创建一个数独求解器;该程序旨在演示如何使用回溯算法来求解数独问题。这并不是关于使用Visual Basic的课。只是选择Visual Basic作为一个平台来使用,因为它非常直接地在上面创建了一个Windows应用程序。但关于Visual Basic的知识不是必要的。理解面向对象编程是明智的。调查讲述了所有不同约束的不同相容性方法。我们将它们与上面的一些冗余约束结合起来,在表中创建传播方案。传播方案中,存在在评估中我们没有找到区分这两个方案的示例。我们决定在不同的已发布问题实例集上测试我们的程序。在英国,几家报纸出版了他们的每日数独问题,并出版了这些问题的合集。我们使用《泰晤士报》、《每日电讯报》、《卫报》、《独立报》、《每日邮报》和《太阳报》,还有专门研究数独游戏的杂志,特别值得一提的是日本益智出版商Nikoli,他的益智游戏也出现在英国。此外,还有一些关于谜题实例的书籍。通常,每一个实例都会由益智设计师给出一个问题难度。在讨论板上,人们经常抱怨这种难度被随意分配的方式。此外,我们还发现了450和7611个拼图的集合,它们只有17个预设,这是目前已知的适定问题的最小预设数。这些不按难度分类。这个系列主要包含非常困难的问题。这些程序在没有搜索的情况下似乎很好地找到了求解方案,除了2个“困难”和17个“超级”难题。这些难题要么需要更有力的推理,要么需要某种形式的搜索。使用修剪步骤测试值在这些示例中非常有效。我们可以看到,所有的问题都可以通过使用修剪技术和超弧相容性相结合来求解,几乎所有的问题都可以通过结合边界一致性和修剪来求解。只要有足够的预设值,只使用前向检查和修剪就可以很好地工作。在最小化问题上,它几乎总是找不到求解方案。我们还对已发布难题的局部最小化感兴趣,即不包含冗余提示。本文展示了一些测试的结果。大多数已发布的问题不是局部最小化的,它们通常包含10个以上的冗余提示,这些提示可以在不丢失求解方案唯一性的情况下删除。文中实例15、16是一个例外,它们搜索局部最小值。从实例17开始的大部分难题也是最小化的。我们用一个简单的、稳定的选择程序计算了这个缩减。我们搜索一个可以消除的线索;如果找到了一个提示,我们提交这个选择,并尝试找到额外的冗余提示。该方法不保证最小约简,而是可能会导致局部最小实例。我们已经看到,通过模型的不同变体,我们可以求解不同难度的难题实例。我们也可以使用同样的技术来生成谜题吗?这种方法既可以产生适定的局部最小化问题,也可以用来寻找给定难度等级的无搜索难题,这些难题在不丢失无搜索属性的情况下无法进一步减少。这种自下而上的问题生成“在2000年AAAI生成满足问题实例”中为CSP和SAT求解器生成拟群完备的可解问题实例。在这种情况下,我们从一个完整的拟群开始,从网格中删除一些值,并留下一个可行的拟群完备问题。生成的问题可能有多个求解方案,但在给定的上下文中这是可以的。由于我们对适定问题感兴趣,所以只要求解方案保持唯一性,我们就必须一个接一个地执行删除步骤。

(2)本文研究方法

调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。

观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。

实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。

文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。

实证研究法:依据现有的科学理论和实践的需要提出设计。

定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。

定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。

跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。

功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。

模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。

程序约束论文参考文献

[1].王奎.分支结构程序的约束转换及语义等价[J].无线通信技术.2019

[2].MOHAMMED,ABDO,MOHAMMED,HAMID(汉丁).基于约束程序方法的数独问题求解研究[D].吉林大学.2019

[3].朱福勇.论民事法官询问范式及程序约束[J].法学评论.2018

[4].李玉翠.ICU患者约束带护理中护理程序的应用分析[J].中外女性健康研究.2018

[5].Deng,CHEN,Yan-duo,ZHANG,Wei,WEI,Rong-cun,WANG,Xiao-lin,LI.一种用于程序约束挖掘的过采样方法(英文)[J].FrontiersofInformationTechnology&ElectronicEngineering.2018

[6].侯清芳.配气凸轮型线参数有约束优化方法及程序开发[D].吉林大学.2018

[7].靳娜娜.基于约束求解的并发程序错误预测方法研究[D].东南大学.2018

[8].武鹏.约束程序在稳定匹配上的应用[D].吉林大学.2018

[9].王吉春.代替考试罪司法证明困境及路径探析——从实体法与程序法的双重约束下谈起[J].河北法学.2018

[10].刘慎辉,李飞.终结本次执行程序的约束机制[J].人民司法(应用).2018

标签:;  ;  ;  ;  

程序约束论文-王奎
下载Doc文档

猜你喜欢