智能定义(知识阈值理论)智能就是在巨大的搜索空间中迅速找到一个满意解的能力智能的综合性定义:智能是知识和智力的总和。其中知识是智能行为的基础。智能的特征:1)具有记忆与思维能力存贮有感官得到的外界信息并加以处理(如分析,计算,联想、决策等)2)具有感知能力:通过感官获取外部信息的能力。3)具有自适应能力通过与外部世界交互学习,积累经验,增长知识,以适应环境变化。4)具有表达能力通过语言、手势、表情等方式完成信息的输出。深蓝:能够模拟人的思维,进行博弈的计算机。1997年5月12日,一个名为“深蓝”(deepBlue)的IBM计算机系统战胜当时的国际象棋冠军盖利.卡斯帕罗夫图灵测试:两个房间,一个是人,一个是机器,测试者通过一系列的提问,如果提问题的人无法分辨是人还是机器在回答问题,则认为该机器具有智能人工智能(ArtificalIntelligence,简称AI)又称机智能machineintelligence,一般认为起源于美国1956年的一次夏季讨论(达特茅斯会议)在这次会议上,第一次提出了“ArtificalIntelligence”这个词。AI的本质问题:研究如何制造出人造的智能机器或系统,来模拟人类的智能活动的能力,以延伸人们智能的科学。产生式系统由三个部分组成1)综合数据库(GlobeDatabase)也称为:事实库,上下文等。作用:存放问题求解的过程中产生的状态描述信息。2)规则库(RuleBase)(问题本身知识、求解知识)也称为规则基、规则集等。作用:存放规则知识。产生式规则的一般表达形式:IF(前提)…THEN(结论)…即:如果…那么….例:1)数学定理2)IFA是一种动物ANDA是哺乳动物ANDA吃肉THENA是高级动物关于不精确推理当规则的前提成立时,结论并非完全成立。这种推理称为不精确推理。通常采用阈值方法来解决此类问题。(3)控制策略(ControlStrategy)a选择规则库中的规则与综合数据库的已知事实进行匹配,匹配成功的规则为可用规则,否则为不可用规则。b规则冲突的解决(可用规则书1)。c将选中的规则的结论放入综合数据库。产生式系统的特点:1模式化:所有规则具有相同的形式2结构化:规则见的关联比较简单,容易维护。3自燃性:规则表达了因果关系,比较符合人们的思维方式,容易理解。4单一性:智能处理因果关系问题。5效率低,规则匹配过程很大。产生式系统的适用范围:1)知识杂乱、事实众多、无统一理论的领域2)该领域的知识能够抽象出来3)该领域的知识可分解为一组独立的动作,以便用规则加以表示。概括说的说:问题空间从一个状态到另一个状态的转移序列独立的领域可采用产生式系统模拟。产生式系统一般性算法:1DATA←初始数据库2untilDATA满足结束条件条件之前do:3Begin在规则集中选择某一可用于DATA的规则RDATA←R应用到DATA后得到的结果END例1字符转换问题:设字符转换规则A∧B→CA∧C→DB∧C→GB∧E→FD→E已知:A,B求:F一、综合数据库{x}:其中x为字符二、规则集IFA∧BTHENCIFA∧CTHENDIFB∧CTHENGIFB∧ETHENFIFDTHENE三、控制策略顺序排队四、初始条件{A,B}五、结束条件:例2八数码游戏问题:一个3×3棋盘有八张牌1,2,…8及一个空格,空格周围的牌可以向空格移动。求解:给定一个初始状态s一个目标状态G,求S到G的走步序列。产生式系统的基本控制策略概括的讲:产生式系统控制策略---搜索1)不可撤回方式2)试探性方式a回溯方式(Backtracking)b图搜索方式(Graphsearch)1.不可撤回方式基本策略:选择规则时只依靠局部知识(信息),而不考虑是否全局最佳选择,只能满足局部优化条件,用过的规则不再撤回。特点:a方法简单,容易实现b具有一定的局限性,适用范围小(只可用于单极值情况)c可能会造成规则的多次重复使用。比如:‘爬山算法’,不可用于解决多极值问题。关于局部知识的利用:设计局部评价函数W(n),根据W(n)最大为原则来选择规则。例:八数码问题设:-W(n):不在位的数码个数n:任意状态目标状态:-W(n)=0(每个数码就位)最不利状态-W(n)=-8(每个数码都不在规定的位置)2.回溯方式基本策略:试探性的选择一条规则,如果发现此规则不合适,则退回去另选其他规则。关键在于回溯条件的设定。特点:a实用性好(相对不可回撤方式)b适用范围较大,在一定程度上能避免盲目性c可解决局部极值问题设计方法:a确定合适的回溯条件b充分利用可用知识来排列规则,减少回溯次数例:八数码游戏(主要讨论回溯条件)回溯条件:a新产生的状态已经在搜索过程中出现;b应用规则的数量已经超过规定值(深度限制)c当前状态,无可用规则满足上述条件之一则产生回溯,每次回溯一层。3.图搜索方式基本策略:它是一种展开式搜索方法,把问题空间看成一张隐含图,从中搜索出一条解路径。特点:a实用性好b能保留完整的搜索树c对于解空间较大的问题而言,搜索代价较大。例:八数码问题这是一个典型的宽度优先策略,所以搜索代价比较大。总结:三种控制策略的特点1)不可撤回方式:沿一条路径单向延伸搜索2)回溯方式:可修正搜索路径3)图搜索方式:展开式搜索,可保留完整的搜索树。产生式系统分类1.一般性产生式系统根据规则的应用方式,一般性产生式系统可以分为三种类型:1)正向系统(数据驱动)采用正向推理方式,即由初始状态推理到目标状态,正向系统里的规则是正向使用的:规则的前提成立,那么规则的结论成立。2)反向系统(目标驱动系统)采用反向推理方式:即由目标状态反向推理找到初始状态。反向系统的规则是反向使用的:先假设规则的结论成立,在寻找使其成立的前提条件。3)双向系统由数据、目标双向驱动,最后终止在某个中间状态。例:数学证明思路2.可交换产生式系统定义:满足下列性质的产生式系统称为可交换产生式系统a给定可以用于数据库D的规则集R,对于使用R中的任何规则后产生的任何数据库,规则集R仍然可用。(规则适用性)b如果目标条件被D满足,则应用R中的任何规则于D上所产生的任何数据库仍可满足目标条件。(数据库可用性)c应用R中一个规则序列于D上后,得到的数据库不随这规则序列次序变化而变化。(规则次序无关性)3.可分解产生式系统定义:任何待求解的数据库都可以分解为若干个独立处理分量的产生式系统称为可分解产生式系统。求解方法:将初始数据库分解为几个可独立处理的分量,用规则分别求解,生成新的数据库,再分解,再求解,知道结束。可分解产生式系统的一般性算法:1DATA←初始数据库2{Di}←DATA,Di库:独立的分量数据库3until{Di}的所有元素都满足结束条件之前,do:4begin5从{Di}中选择一个不满足结束条件的D*6把D*从{Di}中删除7从规则集R中选一条可用于D*的规则r,设D是人应用于D*的结果是D的分解式。8在{Di}添加di9endAI领域的知识分类a陈述性知识:用于描述综合数据库的状态。(如事实等)b过程性知识:用于规则中表达问题的知识.(如客观规律等)c控制性知识:用于构成控制策略的知识(算法、数据结构等)AI系统的一个难题:知识表达问题,要能够客观的描述现实,简化求解过程,有效的提高求解效率,降低求解代价。产生式系统的搜索策略状态空间:由给定问题的所有可能的状态组成的空间(相当于全集G)搜索空间:按某种策略在状态空间中选取的部分空间(G的子集)解路径(解空间):求解问题的一条有效路径。搜索策略的基本思路:搜索空间必须包含解路径,如果问题有解,且尽量缩小搜索空间。搜索策略的评价准则:总体费用最低费用的划分:a规则应用的费用:执行规则时所花的费用b控制费用:选择规则所花的费用。1.回溯策略2.图搜索策略3.启发式图搜索策略1)A算法2)爬山算法3)分支界限算法4)动态规划算法5)A*算法6)h函数与A*的关系7)关于单调性限制8)A*算法示例例四皇后问题定义综合数据库:设:DATA={ij︱1=i,j=4},其中:ij表示棋子所在行列如:24表示第二行第四列有一枚棋子因为棋盘上可放入的棋子数为0~4个所以集合中元素数位0~4个,即length(DATA)=0~4图搜索的实质是从问题空间中找出一张包含目标节点的子图。图搜索的结果:1,一个完整的搜索图G。2一个解路径,用指针表示的解路径。ProcedureGraphSearch1G=G0(G0=s),open=(s)//s:初始状态2closed=()3Loop:ifopen=()thenexit(fall)4n←first(open)remove(n,open),add(n,closed)5ifgoal(n)thenexit(success)6{mj}←expand(n),//mj不含n的先辈节点7open←add(open,mj)//mj不在open,closed中标记mj每个到n节点指针确定是否需要修改已在open,closed中的每个节点到n的指针确定是否需要修改已在closed中的每个节点的后继节点原来的指针。8按照某种方式排列open表中的节点,goloop深度优先算法Procedruedepth-First-Search1G=G0(G0=s),open=(s),closed=()//s:初始状态2Loop:ifopen=()thenexit(fall)3n←first(open)4ifgoal(n)thenexit(success)5remove(n,open),add(n,closed)6{mj}←expand(n),//mj不含n的先辈节点7open←add(open,mj)//mj不在open,closed中标记mj每个到n节点指针,按照节点深度递减顺序排列open中的节点8goloop讨论1:如果问题有解,有深度优先搜索算法,是否能够找到解?不一定.解空间是否有限?讨论2:本算法的改进之处是open中节点按照深度优先排列,但是没有对深度加以控制,可能造成搜索代价太大宽度优先算法:Procedruebreadth-First-Search1G=G0(G0=s),open=(s),closed=()//s:初始状态2Loop:ifopen=()thenexit(fall)3n←first(open)4ifgoal(n)thenexit(success)5remove(n,open),add(n,closed)6{mj}←expand(n),//mj不含n的先辈节点7open标记每个到n节点指针,按照节点深度递增顺序排列open中的节点8goloop理论上可以利用宽度优先搜索能够找到解,如果问题有解的话。讨论:宽度优先算法和深度优先算法可能出现组合爆炸。都没有利用任何启发式信息,所以称为无信息搜索策略pen←add(open,mj)//mj不在open,closed中宽度优先例题:由一张桌子T、三个积木A、B、C组成一个积木世界,初始状态是A在B上,B在桌子上,C在桌子上;目标状态是:A、B、C依次从上到下排列在桌子上。如图解:1)状态描述(P1,P2,P3)表示按A、B、C顺序依次分别在P1,P2,P3上其中Pi是积木或者桌子。初始状态时(B、T、T),目标状态可以表示(B、C、T)2)定义操作:move(x,y)表示将积木x移到Y上;约束条件:aX顶部必须是空的b如果Y是积木,Y的顶部必须是空c同一种状态出现不得多于一次。1)解题过程2)open表和closed表3)节点样子画出整个图G和解路径4)程序何时结束5)改用深度优先如何?启发式图搜索策略:基本概念启发式图搜索的实质是利用启发信息有目的地进行搜索,减少搜索的盲目性。降低搜索空间找到最佳解启发式信息用于解决open表中节点的排列次序问题,方法是利用一个评价函数计算open表中节点的评价函数值,按照函数值从小到大排列所有节点。评价函数的目的:把最有希望得到最佳解或者解的排列在前面。路径:给定节点序列(n0,n1,…nk)。如果该序列中的任一节点n