算法
文章平均质量分 78
codinglf
专注于视频直播行业,在这个行业基类了丰富的经验,热爱开源项目。
我坚信业精于勤,只有偏执狂才能真正的成功。
喜爱的开源项目有:ffmpeg、opencv、crtmpserver、obs-studio、nginx、redis、skynet、kbengine、protobuf等等。。。
我的博客:http://blog.csdn.net/windows_nt
展开
-
人工智能之博弈四、深度搜索
在人工智能领域,经常使用到搜索技术。常见的搜索方式有深度优先搜索与广度优先搜索两种。这里用到了一些较为专业的名词,如果你不太明白请你仔细阅读下面的例子。问题:树的搜索树在计算机科学领域是一种数据结构的概念。 树中的字母表示树的节点,节点a叫做树的根,节点b、c、d叫做节点a的子节点。b、c、d又分别有它们的子节点。树的搜索的意思就是要找到一条连接两个节点的路径,例如连接节点转载 2012-04-07 00:14:25 · 1246 阅读 · 0 评论 -
人工智能之博弈一、开篇
在本章和下几章中,我们要探讨一下难度较大的棋类游戏程序,比如国际象棋和西洋跳棋等等。用这些程序来同人或其他程序对弈。然而,有些程序是把计算机精心设计成一个棋盘,人们可以在其上对弈(或者是一种单人玩的棋盘游戏)。这种程序更接近于系统模拟的领域,而不属于人工智能的范畴。我们此处所要介绍的却是让计算机能够“思考”如何下棋。假定有两个人或者两台机器在下棋。我们把其中一名称为棋手,另一名称为对手。而转载 2012-04-07 00:05:49 · 5545 阅读 · 1 评论 -
人工智能之博弈三、α-β截断
在深度优先的最小最大法中,我们可以看到,博弈树的某些部分并不会产生任何有意义的值,因而也根本用不着去扩展博弈树的这一部分。识别博弈树中这些可忽略部分的技术,称之为α-β截断。之所以叫这个名字,是由于历史原因造成的。 我们可以看出,在轮到棋手下棋的节点上,其部分回溯值是10。而它的当前计算出来的子节点的部分回溯值是8。现在,由于该子节点是轮到对手下棋的节点,而对手总是要走那个具有最小值的棋局转载 2012-04-07 00:12:14 · 1422 阅读 · 0 评论 -
人工智能之博弈五、广度搜索
上一章介绍了深度搜索,现在我们来介绍广度搜索。为了使你对这两种搜索方式有一个较深刻的了解,再次我把它们做个比较。我用下面的树来说明这两种搜索方式。节点a是搜索的起点,而节点i是我们搜索的目标。先来看看深度搜索。深度搜索的搜索路径如下:a-ba-b-ea-ca-c-fa-c-ga-d-i最后找到了节点i。它先找出与a相连的某个节点b,发现b下面还有转载 2012-04-07 00:16:19 · 1575 阅读 · 2 评论 -
人工智能之博弈二、最大最小值方法
现在我们来看看博弈树节点标注的另一种方法:最小最大值方法。整个博弈树尽管大的出奇,然而在只有一部分有用的情况下,利用最小最大值方法是有其优点的,很容易推广使用。比方说,竞赛的结果是以钱为赌注的。为方便起见,设赌金为一块钱。如果棋手赢的,他就获得一块钱;如果他输了,这输一块钱。在和局的情况下,他不输也不赢。 我们把棋手赢的钱称之为收益。如果棋手赢了,其收益为1;如果输了,收益为-1;转载 2012-04-07 00:09:49 · 4412 阅读 · 0 评论 -
数据结构与算法分析
算法折半查找算法目标:对一个有序列表进行折半查找。前置条件;列表元素按照升序排列并被存储在一个数组a中。这个列表具有n个元素,这里n是一个正整数。Item是被查找的值,它的类型和数组元素的类型相同。后置条件:如果查找成功,found为真,而mid是item在数组中的位置;否则,found为假。void binarySearch(NumberArray a, ElementTyp原创 2012-05-14 14:31:35 · 775 阅读 · 0 评论 -
全排列算法的实现
C++的STL有一个函数可以方便地生成全排列,这就是next_permutation在C++ Reference中查看了一下next_permutation的函数声明:#include bool next_permutation( iterator start, iterator end );The next_permutation() function att转载 2013-05-05 16:53:59 · 782 阅读 · 0 评论