搜索是根据问题的实际情况不断寻找可利用的知识,构造出一条代价较少的推理路线,使问题得到圆满解决的过程。
两大类搜索的方法分别是盲目搜索和启发式搜索。
盲目搜索,就是未利用问题有关的知识,采用固定的方式生成状态的方法。即只按预定的控制策略进行搜索,在搜索过程中获得的中间信息不用来改进控制策略。显然这种方法的搜索效率是低下的,但方法具有通用性。
启发式搜索,与盲目搜索正好相反,它利用问题的知识,缩小问题的搜索范围,选择那些最有可能在最优解路径上的状态优先搜索,以尽快地找到问题的最优解。
什么是搜索?搜索是人工智能领域的一个重要问题。
它类似于传统计算机程序中的查找,但远比查找复杂得多。传统程序一般解决的问题都是结构化的,结构良好的问题算法简单而容易实现。
但人工智能所要解决的问题大部分是非结构化或结构不良的问题,对这样的问题很难找到成熟的求解算法,而只能是一步步地摸索前进。就像是甲、乙两个不同的网络,甲网络中的某一台计算机A要想找到乙网络中的数据。
乙网络位于广域网中,A的目标就是要找到乙网络(实际上就是找到甲主路由器的IP),但是A不知道目标的具体位置,只能试探着去找。像这样摸索着前进,不断搜索前进方向的过程称为搜索。
从理论上讲,只要乙不犯规 (不会关闭设备),A终究是会找到乙的(当然这必须是在甲、乙本来是可以互通的基础上)。当然,A找到乙所需的时间是无法预测的。
如果A以前就访问过乙网络上的某台主机,在找的过程中,可以得到路由器中更新的路由表的支持,很快会找对了方向,可能花费的时间就会少些。相反,也有可能A找遍了所有的地方,最后才找到乙(极端情况)。
搜索,通常可分为盲目搜索和启发式搜索。盲目搜索是按预定的控制策略进行,在搜索过程中获得的中间信息不用来改进控制策略 。
这在复杂网络中的路由选择会经常用到。广域网中的动态路由协议,为了学习相邻路由器的路由,为了确定最短路径,总是主动地去搜索相邻的路由设备。
由于路由选择总是按预先规定的方式进行,未能考虑到环形结构或不可到达情况,因此效率不高,具有盲目性,往往会因此占去不少的网络带宽。启发式搜索是在搜索过程中根据问题的特点,加入一些具有启发性的信息,如从上一级路由器中找到相应的路由表来确定下一步搜索的路线,加速问题的求解过程。
显然,启发式搜索的效率比盲目搜索要高,但由于启发式搜索需要与网络本身特性有关的信息,而这对非常复杂的网络是比较困难的,因此盲目搜索在目前的应用中仍然占据着统治地位。而盲目搜索中最行之有效、应用最广泛的搜索策略就是:宽度优先搜索和深度优先搜索。
这两种搜索方法在很多人工智能的资料中都有介绍,关于算法也给出了简单的设计思路。这里只对简单应用及体会做简单介绍。
宽度优先搜索,又称为广度优先搜索,是一种逐层次搜索的方法。在第n层的节点没有全部扩展并考察之前,不对第n+1层的节点进行扩展。
设V1为起始节点,则搜索的顺序为:V1V2V3V4V5V6V7 Flash5中Action Script功能非常强大,其实它涉及到的最主要的问题就是动作怎么通过指定路径或一个大概的方式去完成动作的结果。利用此算法可以很好地解决这个问题。
打红警,玩帝国时,指挥坦克或炮车去指定位置,计算机控制坦克通过此算法找到最短路径行进只需要将屏幕分成多个区间并编成号码,实际上从源地址到目标地址就是找到到达目标地址的一串区间号码。这样问题就可以程序化了。
至于具体的设计流程和源程序这里就不多讲了。 Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。
实际上网络上许多协议和应用程序都会用到类似的思想。例如,生成树协议中,为了确定生成树的树根。
它要确定每一台交换机的树值并不断地更新结果。象使用网络下载某个软件时,它的每个线程都会去找目标地址,来确定到达的路径。
因为宽度优先搜索是针对非结构化或结构不良的问题,所以只要碰到类似的情况只是将具体条件转化一下,就可以应用此算法了。
简介:著名的美国斯坦福大学人工智能研究中心尼尔逊教授对人工智能下了这样一个定义:“人工智能是关于知识的学科――怎样表示知识以及怎样获得知识并使用知识的科学。”
而另一个美国麻省理工学院的温斯顿教授认为:“人工智能就是研究如何使计算机去做过去只有人才能做的智能工作。 ” 近年来,随着计算机技术的迅猛发展和日益广泛的应用,自然地会提出人类智力活动能不能由计算机来实现的问题。
几十年来,人们一向把计算机当作是只能以极快地、熟练地、准确地运算数字的机器。但是在当今世界要解决的问题并不完全是数值计算,像语言的理解和翻译、图形和声音的识别、决策管理等都不属于数值计算,特别像医疗诊断要有专门的特有的经验和知识的医师才能作出正确的诊断。
这就要求计算机能从“数据处理”扩展到还能“知识处理”的范畴。计算机能力范畴的转化是导至“人工智能”快速发展的重要因素。
人工智能的定义: 著名的美国斯坦福大学人工智能研究中心尼尔逊教授对人工智能下了这样一个定义:“人工智能是关于知识的学科――怎样表示知识以及怎样获得知识并使用知识的科学。 ”而另一个美国麻省理工学院的温斯顿教授认为:“人工智能就是研究如何使计算机去做过去只有人才能做的智能工作。”
这些说法反映了人工智能学科的基本思想和基本内容。即人工智能是研究人类智能活动的规律,构造具有一定智能的人工系统,研究如何让计算机去完成以往需要人的智力才能胜任的工作,也就是研究如何应用计算机的软硬件来模拟人类某些智能行为的基本理论、方法和技术。
人工智能(,简称AI)是计算机学科的一个分支,二十世纪七十年代以来被称为世界三大尖端技术之一(空间技术、能源技术、人工智能)。也被认为是二十一世纪(基因工程、纳米科学、人工智能)三大尖端技术之一。
这是因为近三十年来它获得了迅速的发展,在很多学科领域都获得了广泛应用,并取得了丰硕的成果,人工智能已逐步成为一个独立的分支,无论在理论和实践上都已自成一个系统。 人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。
人工智能将涉及到计算机科学、心理学、哲学和语言学等学科。可以说几乎是自然科学和社会科学的所有学科,其范围已远远超出了计算机科学的范畴,人工智能与思维科学的关系是实践和理论的关系,人工智能是处于思维科学的技术应用层次,是它的一个应用分支。
从思维观点看,人工智能不仅限于逻辑思维,要考虑形象思维、灵感思维才能促进人工智能的突破性的发展,数学常被认为是多种学科的基础科学,数学也进入语言、思维领域,人工智能学科也必须借用数学工具,数学不仅在标准逻辑、模糊数学等范围发挥作用,数学进入人工智能学科,它们将互相促进而更快地发展。 从实用观点来看,人工智能是一门知识工程学:以知识为对象,研究知识的获取、知识的表示方法和知识的使用。
计算机与智能 通常我们用计算机,不仅要告诉计算机,要做什么,还必须详细地、正确地告诉计算机怎么做。也就是说,人们要根据任务的要求,以适当的计算机语言,编制针对该任务的应用程序,才能应用计算机完成此项任务。
这样实际上是在人完全控制计算机完成的,是谈不上计算机有“智能”。 大家都知道,世界国际象棋棋王卡斯帕罗夫与美国IBM公司的RS/6000(深蓝)计算机系统于1997年5月11日进行了六局“人机大战”,结果“深蓝”以3。
5比2。5的总比分获胜。
比赛结束了给人们留下了深刻的思考;下棋要获胜要求选手要有很强的思维能力、记忆能力、丰富的下棋经验,还得及时作出反映,迅速进行有效的处理,否则一着出错满皆输,这显然是个“智能”问题。尽管开发“深蓝”计算机的IBM专家也认为它离智能计算机还相差甚远,但它以高速的并行的计算能力(2r108步/秒棋的计算速度)。
实现了人类智力的计算机上的部分模拟。 从字面上看,“人工智能”就是用人工的方法在计算机上实现人的智能,或者说是人们使计算机具有类似于人的智能。
智能与知识 在20世纪70年代以后,在许多国家都相继开展了人工智能的研究,由于当时对实现机器智能理解得过于容易和片面,认为只要一些推理的定律加上强大的计算机就能有专家的水平和超人的能力。 这样,虽然也获得一定成果,但问题也跟着出现了,例如机器翻译当时人们往往认为只要用一部双向词典及词法知识,就能实现两种语言文字的互译,其实完全不是这么一回事,例如,把英语句子“Timeflieslikeanarrow”(光阴似箭)翻译成日语,然后再译回英语,竟然成为“苍蝇喜欢箭”;当把英语“”(心有余而力不足)译成俄语后,再译回来竟变成“”(酒是好的但肉已变质)。
在其它方面也都遇到这样或者那样的困难。这时,本来对人工智能抱怀疑态度的人提出指责,甚至把人工智能说成是“骗局”、“庸人。
人工智能研究的领域极为广泛,几乎涉及到人类创造所需要的诸如数学、物理、信息科学、心理学、生理学、医学、语言学、逻辑学以及经济、法律、哲学等重要学科。
目前研究过程中通常采用两条途径,一条是由内到外,从揭示人脑的结构和人类智能的奥妙入手,目的是搞清楚大脑处理信息的过程,目标是创立信息处理的智能理论。另一条是由外到内,从应用计算机模拟人的智能活动入手,目标是研究开发智能机器或系统,力求达到与人的智能活动相类似的效果。总之,人工智能的最终目标是要搞清人工智能的有关原理,使计算机具有智慧更加聪明、更加有用。
人工智能在计算机上实现时有2种不同的方式:一种是采用传统的编程技术,使系统呈现智能的效果,而不考虑所用方法是否与人或动物机体所用的方法相同。
这种方法叫工程学方法(ENGINEERING APPROACH),它已在一些领域内作出了成果,如文字识别、电脑下棋等。另一种是模拟法(MODELING APPROACH),它不仅要看效果,还要求实现方法也和人类或生物机体所用的方法相同或相类似。
遗传算法(GENERIC ALGORITHM,简称GA)和人工神经网络(ARTIFICIAL NEURAL NETWORK,简称ANN)均属后一类型。遗传算法模拟人类或生物的遗传-进化机制,人工神经网络则是模拟人类或动物大脑中神经细胞的活动方式。
为了得到相同智能效果,两种方式通常都可使用。采用前一种方法,需要人工详细规定程序逻辑,如果游戏简单,还是方便的。
如果游戏复杂,角色数量和活动空间增加,相应的逻辑就会很复杂(按指数式增长),人工编程就非常繁琐,容易出错。而一旦出错,就必须修改原程序,重新编译、调试,最后为用户提供一个新的版本或提供一个新补丁,非常麻烦。
采用后一种方法时,编程者要为每一角色设计一个智能系统(一个模块)来进行控制,这个智能系统(模块)开始什么也不懂,就像初生婴儿那样,但它能够学习,能渐渐地适应环境,应付各种复杂情况。这种系统开始也常犯错误,但它能吸取教训,下一次运行时就可能改正,至少不会永远错下去,用不到发布新版本或打补丁。
利用这种方法来实现人工智能,要求编程者具有生物学的思考方法,入门难度大一点。但一旦入了门,就可得到广泛应用。
由于这种方法编程时无须对角色的活动规律做详细规定,应用于复杂问题,通常会比前一种方法更省力。
爱台品的资料均为作者提供或者网友推荐收集整理的,仅供学习和研究使用,不得用于任何商业用途。
如果您发现本站侵害了您的版权,请立即联系我们,本站将第一时间进行相关处理。
Copyright © 爱台品 All Rights Reserved. 蜀ICP备2023006180号-1