Chapter 2 Constraint Satisfaction: An Emerging Paradigm

本章重点论述了在1965年至1985年期间,作为人工智能和计算机科学领域新范式的约束语言,包含语言的满意度。 本手册的其余部分将更详细地介绍这里介绍的大部分内容,当然还有1986年至2006年。

2.1 The early days

约束满足以其基本形式涉及为一组问题变量中的每一个找到一个值,其中约束指定某些值的子集不能一起使用。 作为约束满足的一个简单例子,考虑选择组件部分的任务,这些组件可以是相互兼容的三轮车,车架,车轮,制动器,链轮和链条。

与大多数人工智能领域一样,约束满足可以被分为representation和reasoning两个方面。 前者可分为通用generic和特定应用application-specific型,后者可分为搜索search和推理inference。 虽然约束满足通常作为一种搜索形式,但它的真正重要性在于其广泛的代表性范围:它可以有效地用于模拟许多其他形式的推理(例如时间推理temporal reasoning)并应用于许多问题域(例如调度)。 由于这个原因,有时会在应用程序中遇到约束满足问题,但是,学术界已经多年来一直在研究这个问题:这是一本手册重要性的一个原因。此外,虽然启发式研究方法是一个主要关注点,但作为人工智能的一个分支,约束满足的区别特征可以说是强调推理,以约束传播的形式,而不是搜索。

约束满足问题已经被一系列令人眼花缭乱的方法所解决,从自动机理论到蚂蚁算法,并且是许多计算机科学领域和其他领域感兴趣的主题。 这些联系增加了主题的丰富性,但在很大程度上超出了本章的范围。 在这里,我们将重点关注将约束满足度作为人工智能分支的基本方法。 这个新的人工智能分支,以及我们只能在这里触及的编程语言和系统的相关工作,为1985年后对约束编程语言的兴趣奠定了基础。

约束满足当然是在1965年之前。我们现在认为是约束满足问题的现实世界问题,如劳动力调度,自然总是伴随着我们。八皇后问题,在人工智能中占据了很多早期约束满足感的问题,据说是由国际象棋选手马克斯·巴泽尔在1848年提出的。神话认为,一种形式的回溯搜索,一种强大的搜索范式,已成为约束满足的核心工具,被忒修斯在克里特岛的迷宫中使用。 Backtracksearch用于19世纪的休闲数学[51],并且是计算机科学和运筹学在第二次世界大战后作为学术学科出现的早期研究课题。 BitnerandReingold [2]认为Lehmer在1950年代首次使用了“回溯”一词[50]。在1960年代[16,15,34,75]的计算机科学文献中出现了各种形式的约束满足和传播。(八皇后问题,回溯的提出)

在人工智能中,对约束满足的兴趣在两个流中形成。 在某种意义上,两个流的共同祖先是伊万·萨瑟兰(Ivan Sutherland)1963年开创性的麻省理工学院博士学位。 论文,“画板:人机图形通信系统”[73]。

在一个流中,约束的多功能性导致应用程序在各种领域以及相关的编程语言和系统中。这个流我们可以调用语言流。 1964年,威尔克斯提出允许代数方程作为程序性Algol类编程语言中的约束语句,其中松弛用于满足约束[80]。大约在1967年,Elcock基于对等式约束的操纵开发了一种声明性语言Absys [22]。 Burstall早在1969年就采用了一种约束操作形式来解决密码算术难题[9]。在1970年的第一个社会智能研究中,Fikes描述了REF-ARF,其中REF语言构成了一个将约束满足和传播作为其方法之一的一般问题解决系统的一部分[23]。 Kowalski使用约束传播的形式进行定理证明[48]。麻省理工学院的Sussman和其他人将一种约束传播应用于电路的分析,综合和故障定位[6,17,18,67,71],而斯蒂尔的Sussman开发了CONSTRAINTS语言[72]。 Borning在他的ThingLab仿真实验室中使用了约束[4,5],其核心是Smalltalk语言的扩展; Lauriere在Alice中使用约束,这是一种解决组合问题的语言[49]。在规划领域,伊士曼用GSP进行“约束结构化”空间规划,通用空间规划师[21],Ste fi k在MOLGEN中使用“约束发布”,计划在分子遗传学中进行基因克隆实验[68,69]和Descotte和Latombe的GARI系统,它产生了机械零件的加工计划,嵌入了一个在“对抗约束”之间做出妥协的计划者[20]。 Fox,AllenandStrohm开发了ISIS-II [25]用于工厂车间调度的约束导向调度系统。

在另一个流中,对约束求解算法的兴趣源于机器视觉社区;我们引用一些早期的工作。我们将此流称为算法流。具有里程碑意义的'华尔兹滤波'(弧一致性)约束传播算法出现在博士学位。关于场景标签的论文[79],建立在霍夫曼[41]和Clowes [10]的工作基础之上。 Montanari开发了路径一致性,并在一篇题为“约束网络:图像处理的基本属性和应用”的开创性论文中建立了表示和推理约束的一般框架[60]。 Mackworth利用机器视觉约束[52],然后提供了“Consistencyinnetworks ofrelations”的年龄框架和弧与路径一致性的新算法[53]。在完成博士学位后不久,Freuder将弧和路径一致性推广到k-一致性[26]。关于“主动视野”的论文。 Barrow和Tenenbaum,MSYS [1]和IGS [74],也是图像解释约束的早期用户。 Rosenfeld,HummelandZucker,在“Scenelabelingbyrelaxationoperations”中,探讨了“连续标记问题”,其中约束不是“硬”,指出这些值可以或不能一起使用,而是“软”指定兼容程度[65]。哈拉克,戴维斯,罗森菲尔德和米尔格拉姆讨论了“减少操作以获得满意度”[38],哈拉克和夏皮罗在两篇关于“一致标签问题”的论文中概括了这些结果[36,37]。与J.R.Ullman一起,他们在[76]中讨论了用于约束传播和并行搜索计算的特殊硬件。

语言和算法流有分歧,两者都与特定的应用领域脱节。 虽然应用和商业开发确实激增,但学术界更多地关注一般方法。 虽然约束规划的一般性和科学性严谨性是其优势之一,但我们仍然面临着将这些流与其语义问题解决根源更加完全重新连接的持续挑战。

语言流受到逻辑编程的严重影响,以约束逻辑编程的形式出现,并专注于编程语言和库的开发。休伊特的Planner语言[40]及其作为MicroPlanner [70]的部分实现可以被视为早期的逻辑编程语言[3]。然而,主要的早期里程碑是Colmerauer和其他人在1972年左右开发的Prolog [14]以及编程语言运动的记录[39,47]。 Prologcanbeframedas使用单一算法作为约束求解器来解决编程语言,解决方案问题的变换(包括变量)。 Colmerauer在1982年对Prolog II的介绍中进一步推动了这一观点[13,12]。 Mackworth [53]提出了将约束传播算法集成到类似Planner的语言的解释器中。 Van Hentenryck开发并实现了CHIP(Prolog中的约束处理)作为一种全面的约束逻辑编程语言[77]。在并行开发中,Jaffar等人。开发了CLP(X)系列约束逻辑编程语言[42],包括CLP(R)[44]。有关语言流中这些发展的更多信息,请参阅本手册[11,43]和其他章节中的调查。

算法流受到人工智能作为搜索范式的影响,如Nilsson早期教科书[61]中的例证,以及算法科学的发展,如Knuth的计算机编程艺术[45]所示,侧重于算法(algorithms)和启发式(heuristic)。 第二股流更加完美地存在于人工智能中,发展成为围绕推理范式构建的人工智能社区之一:基于约束的推理[29],基于案例的推理等。 它还越来越多地关注简单但强大且一般的约束满足问题(CSP)公式及其变体。 在本章中,我们将主要关注这个流,以及CSP范例的发展。

然后,挑战变为将语言和算法流以及相关学科(例如数学规划和约束数据库)重新集成到单个约束编程社区中。 这个过程始于20世纪90年代,当时巴黎Kanellakis,Jean-Louis Lassez和Vijay Saraswat主持了一个研讨会,很快就形成了一年一度的约束规划原则和实践国际会议,并在Zs'的怂恿下 作为Ruttkay,Gene Freuder建立了Constraints期刊,该期刊“为许多对约束规划和约束满足和优化感兴趣的学科以及使用约束技术的许多应用领域提供了一个共同的论坛”。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值