启发式方法

麻省理工公开课人工智能笔记十四

与世无争的帅哥 提交于 2020-01-22 01:33:17
本篇将讨论如何按照人类的方式,一次从一个例子获得知识,不同于其他从成千上万的例子和实验中获得知识。 下面是课堂例子 首先我们有一个两个木块上面支撑一个木块的例子,姑且称其为拱形,还有一个 相近差错 的例子,是三个木块独立放置,在右侧画出示意图,由这个对比我们得出,拱形必须有支撑关系,画红色表示。 再有一个 相近差错 的例子,下面两个木块接触,不是拱形,由此我们得出,拱形不能有接触关系 再有一个例子,他的上面木块是红色,仍为拱形,由此得出,拱形上面的木块可以是红色 再有一个例子,上面木块是蓝色,仍为拱形,可以得出,拱形上面木块可以是任意颜色 再有一个例子,上面是楔形,仍为拱形,可以得出,拱形上面的木块可以是楔形 在扩展,上面的木块可以是正方形,如果把楔形和正方形定义为积木,那拱形上面可以是积木,积木是玩具,可以得出,拱形上面是玩具。 通过上面5步,(计算机)学到了很多知识,这同神经网络等其他方法有较大不同。 再有一个例子 观察左边这些火车同右边这些火车有什么不同 答案是左边这些火车每一个都有一节车厢封了顶。 计算机如何发现这个不同,这和拱形的例子相似,不过是一次给出了所有例子,而拱形那个是一个例子一个例子的给出。 计算机首先选一个+例作为种子,然后使用启发式,扩大涵盖面,使其包含更多的+例,中间可能会包含-例,但我们可以继续完善启发式,最终包含所有+例。 下面是为这些启发式命名

【转载】Amit’s A star Page 中译文

你离开我真会死。 提交于 2019-11-26 17:39:37
GameRes游戏开发资源网 http://www.gameres.com Amit's A star Page 中译文 Amit's A star Page中译文原文链接: http://dev.gameres.com/Program/Abstract/Arithmetic/AmitAStar.mht 译序 这篇文章很适合A*算法的初学者,可惜网上没找到翻译版的。本着好东西不敢独享的想法,也为了锻炼一下英文,本人译了这篇文章。 由于本人英文水平非常有限,六级考了两次加一块不超过370分,因此本译文难免存在问题。不过也算是抛砖引玉,希望看到有更多的游戏开发方面的优秀译作出现,毕竟中文的优秀资料太少了,中国的游戏开发者的路不好走。 本人能力有限,译文中有小部分词句实在难以翻译,因此暂时保留英文原文放在译文中。对于不敢确定翻译是否准确的词句,本人用圆括号保留了英文原文,读者可以对照着加以理解。 A*算法本身是很简单的,因此原文中并没有过多地讨论A*算法本身,而是花了较大的篇幅讨论了用于保存OPEN和CLOSED集的数据结构,以及A*算法的变种和扩展。 编程实现A*是简单的,读者可以用STL对本文中的伪代码加以实现(本人已花一天时间实验过基本的A*搜索)。但是最重要的还是对A*本身的理解,这样才可以在自己的游戏中处理各种千变万化的情况。 翻译本文的想法产生于2006年5月