人工智能包括约束求解器吗?

  以下是翻译Optaplanner创始人Geoffrey De Smet的一篇文章《Does A.I. include constraint solvers?》。

  因为英语及中文表达习惯的差异,以该博文发表示Optaplanner官网,其描述的问题及概念具有一定的上下文关联性;因此,为了认还不太熟悉Optaplanner的同学更容易理解,令文章更符合中文母语读者的阅读习惯,我并没有完全按字面生硬直译。其中添加了一些扩展性的意译,基本上能在脱离Optaplanner官网上下文情况下,一定程序上表达到Geoffrey的意思吧,有不正之处请大家多多指点。为谢!



  人工智能的寒冬已经过去,这几年以来,人工智能技术的关注点又出现了增长。不仅仅是我们这些人工智能方面的极客,商界也因看到了其潜力,而进行了投资。为了获得资本青睐,一些研究项目也被重新塑造,贴上人工智能技术的名头。那么,约束求解器能否也使用人工智能的标签呢?

历史小知识:第5代(计算机)计划

  近20年以来,人工智能是个不太受人待见的语汇,要了解其原因,我们需要回到1982年,当时日本决定大力投资第5代计算机 - 一个人工智能平台,将要超越现有的计算机,并打破IBM的垄断。作为应对与跟进措施,其它国家也启动了类似的计划,突然间,研究经费从天而降,引致80年代的人工智能热潮。

  最终计划还是失败了。尽管获得了近10年的资助,但第5代计划的研究中,几乎没有展示出任何实用的成果。之前的一些研究,包括:大数据,智能电话和更高速的计划机,均未达到可行。其它一些研究则完全无用。

  这些研究失败以后,在上世纪90年代及2000年代初,人工智能的概念被彻底败坏了,人们都认为人工智能是不可行的。技术开发界很快结束了他们的人工智能技术名头。约束求解器则加强了与运筹学的相关性;搜索引擎只扮演了一个简单的字典搜索功能;规则引擎则侧重于决策表方面的发展。这些领域都避免提及它们与人工智能相关。而神经网络研究是个例外。

神经网络算法:一项技术吃通天下?

  过去几年间,神经网络算法令人工智能技术再次神奇起来。神经网络算法模拟我们大脑中的神经元(其实不如你想象那样).它是一个黑盒,可以将输入数据转换成你想要的输出数据,这功能主要通过多层神经网络的加总相乘算法实现。数十年来,这类算法均存在精度过低的问题,但近期兴起的大数据,及对更好反向传播算法的发现,此情况出现了翻天覆地的变化。其中后者使用了多层神经网络,神经网络层越多,则相当于实现了一种深度学习。

  时至今日,神经网络算法已经可以进行人脸和声音识别,若与其它人工智能技术(例如:极小极大算法,泽者注:一种博弈算法 )混合使用,这些程序甚至可以击败(象棋)世界冠军,听起来非常神奇。但终究到底,这些都属于模式识别问题;若面对其它(泽者注:非模式识别)问题,这些技术是处理不了的。例如,神经网络算法无法找到一条从罗浮宫到罗马斗兽场的最快路径,无法创建一套美国公路旅行指南

人工智能的正确应用

  神经网络并不是一种普适的人工智能算法, 也不是一种约束求解器或生产规则系统。就此而言,每一类算法,只能解决人工智能领域中的一些部分问题。这也许是一件好事:不存在哪一种算法会把自己训练成天网(译者注:电影《终结者》中的人工智能防御系统),进而对人类构成威胁。

  因此,通过智能软件去解决业务问题,需要根据具体用例来选择合适的算法:

借用的原文图 

  但这(译者注:神经网络的模式识别局限性)并没有阻止学者们的尝试,有很多关于使用神经网络算法去解决车辆路线规划雇员排班的研究,只是其符合度还不如约束求解算法,例如:禁忌搜索法和模拟退火法。当有15%的行驶时间节省量时,为什么要满足于1%的节省量呢(译者注:在车辆路线规划案例中,通过约束求解算法能得到15%的行驶时间节省,为什么还要退而求其次,满足于神经网络算法得到的1%节省量呢)

  相反,约束求解算法却无法解决臭名昭著的关于热狗的图像识别问题。

所有的算法都可以产生智能吗?

  尽管计算1234乘以5678的结果并不容易,但我们并不认为这个计算方法是一种人工智能。同理,那些排序算法也不是人工智能,为什么呢?

  也许是因为这些问题都不存在误差容限,但人工智能却存在,例如:你给出一张哈仕奇的图片,有人把它识别为狼;当你给出一个TSP问题,需要画出最短旅行路线时,人们会给出不同质量的确定性的结果集

  或者那些计算和排序算法是可以被人类理解得到的,这些算法并不是一个黑盒,它可以相当容易地知道,计算机是如何把输入数据,一个指令接着一个指令地转化为输出结果。

约束求解决器的求解又是怎样的一个动作过程呢?

  从历史上看,约束求解器(如Optaplanner)明显是运筹学的一个分支领域,同时也不能排除它属于其它领域(泽者注:约束求解器不仅仅属于运筹学领域).我认为约束求解器也可以纳入人工智能领域,不仅仅是一些论文和书刊如是说,主要是因为掌握约束求解器的应用案例,本身就是已经是一个复杂问题。无论是人类的规划师排出来的解决方案,还是特定算法得出来的解,其质量者具有巨大的不确定性。若给定一个足够大的数据集(译者注:问题数据集),是不可能找到一个绝对最优解的。此外,尽管现有的一些算法已有40年历史了,但研究 人员仍在寻找并发现一些新的算法。

  你觉得呢?约束求解器是不是人工智能的其中一个分支?

原文地址:https://www.cnblogs.com/kentzhang/p/9461857.html

时间: 2024-07-29 07:38:20

人工智能包括约束求解器吗?的相关文章

Altair.Acusolve.v12.0.311.HotFix.Win32_64.&.Linux64 3CD计算流体动力学(CFD)求解器

Altair.Acusolve.v12.0.311.HotFix.Win32_64.&.Linux64 3CD计算流体动力学(CFD)求解器 Altair AcuSolve是一款领先的基于有限元的通用计算流体动力学(CFD)求解器,可以解决非常复杂的工业和科研问题.AcuSolve的稳健性 和扩展性求解技术在全非结构网格基础上仍能保持无与伦比的求解精度.无论是稳态的RANS仿真应用还是复杂瞬态的多物理场仿真, AcuSolve都能容易求解并保证良好的精度.领先的技术 精确的结果    AcuSo

F-Chart.Engineering.Equation.Solver.Pro.v9.478-3D工程方程求解器

F-Chart.Engineering.Equation.Solver.Pro.v9.478-3D工程方程求解器 FunctionBay.RecurDyn.V8R4.SP1.1.Win64 Engineering Equation Solver的一 个主要特征是其高精确度的热力学和传输性质的数据库,提供了数百物质的方式来增强求解能力. Engineering Equation Solver是一款通用的方程求解程序,它可以数值化求解数千连接的非线性代数 和微分方程.该程序还可以用来解决微分和积分方

在redhat6.4上编译z3求解器

因为项目需要,我们使用到了微软的z3求解器求约束,但是z3求解器在红帽平台上并没有发布编译好的二进制版本,而我们的运行环境是红帽的企业版6.4,因此需要自己编译相应的二进制. z3是由微软公司开发的一个优秀的SMT求解器(也就定理证明器),它能够检查逻辑表达式的可满足性.目前的最新版本是4.4.1,github主页. 从z3主页上面下载最新的代码 git clone [email protected]:Z3Prover/z3.git 切换工作目录到z3下执行 python ./scripts/m

Maxwell顺态求解器电磁力分析

文源:技术邻 问题描述:求解一段通有正弦交流电的直导线在某一稳态磁场中的受力情况,并简单验证仿真结果. 模型介绍: 如上几何模型中10mm边长立方体代表永磁体,材料属性为材料库中的NdFe35,修改磁化方向为X方向,其他属性不变,如下图所示.其中黄色圆柱体代表铜导线,红色框线代表求解区域(真空).导线端面与求解域重合,电流不会泄漏以便顺利计算. Maxwell求解树如下: Solution type: Transient瞬态求解器 Boundaries:未指定,系统选取默认求解边界. Excit

cadence约束管理器总体设置 (转)

cadence约束管理器设置是布线过程中很重要的一步,相关的设置可以使得布线事半功倍,还可以提高走线信号的信号质量,下面具体说一下.这篇文章图片大约46张,读者要仔细看看,需要说明的我会用文字解释一下,这些截图都是一步一步的操作,按着顺序的,没有间断,或者跳转,有些书籍,讲解东西,跳来跳去的,我不喜欢.这篇文章的思路是,介绍约束管理器中各个约束项,然后看看各个约束项产生的效果,接下来使用一个例子来说明整个流程,创建一个CEBUS总线,建立CEBUS的ECSET,分配该ECSET给CEBUS,然后

编程之美之数独求解器的C++实现方法

编程之美的第一章的第15节,讲的是构造数独,一开始拿到这个问题的确没有思路, 不过看了书中的介绍之后, 发现原来这个的求解思路和N皇后问题是一致的, 但是不知道为啥,反正一开始确实没有想到这个回溯法,知道是用回溯法求解之后,问题就变得容易了很多. 这里我们不打算实现数独的构造,相反的,我们实现一个数独求解器,以后妈妈再也不用担心我的数独了. 当然求解器的思路和构造数独的思路一样,都是回溯法搜索,这里不再过多说明. 程序运行说明: 1.把待求解的数独数据放到in.txt文件中, 程序会自动读取他,

QuantLib 金融计算——数学工具之求解器

目录 QuantLib 金融计算--数学工具之求解器 概述 调用方式 非 Newton 算法(不需要导数) Newton 算法(需要导数) 如果未做特别说明,文中的程序都是 Python3 代码. QuantLib 金融计算--数学工具之求解器 载入模块 import QuantLib as ql import scipy from scipy.stats import norm print(ql.__version__) 1.12 概述 QuantLib 提供了多种类型的一维求解器,用以求解单

TRAC-IK机器人运动学求解器

TRAC-IK和Orocos KDL类似,也是一种基于数值解的机器人运动学求解器,但是在算法层面上进行了很多改进,相比KDL求解效率(成功率和计算时间)高了很多.下面在Ubuntu16.04中安装TRAC-IK(之前已经安装过ROS Kinetic): sudo apt-get install ros-kinetic-trac-ik 按照ROS教程新建一个名为ik_test的Package,并创建urdf文件夹用于存放机器人URDF描述文件,创建launch文件夹存放launch文件: 参考tr

解微分方程+ode求解器

该命令中可以用D表示微分符号,其中D2表示二阶微分,D3表示三阶微分,以此类推. 求精确解 1.微分方程 r=dsolve('eqn1','eqn2',...,'cond1','cond2',...,'var'). 解释如下:eqni表示第i个微分方程,condi表示第i个初始条件,var表示微分方程中的自变量,默认为t. >> dsolve('Dy=3*x^2','y(0)=2','x') ans =  x^3 + 2 2.微分方程组 >> [x,y]=dsolve('Dx=y'