除了A*,BFS,DFS等之外,Pacman中常用的其他优秀路径寻找算法/启发式算法是什么?我不认为我提到的那些将会起作用,如果有多个水果供pacman找到.
我需要一些好的寻路算法,PacMan可以用它来尽可能少地完成迷宫.我试图寻找指南,但到目前为止还没有运气.到处都提到了与曼哈顿距离的A*,但它只适用于只有一个(或两个?或者可能多达几个?)果实的迷宫.
顺便说一句,为了保持简单,假设周围没有鬼魂.
我最近一直在自我研究期望最大化,并在这个过程中抓住了一些简单的例子:
http://cs.dartmouth.edu/~cs104/CS104_11.04.22.pdf 投掷时有3个硬币0,1和2,P0,P1和P2概率落在头上.投掷硬币0,如果结果是头,投掷硬币1三次,否则投掷硬币2三次.由硬币1和2产生的观察数据如下:HHH,TTT,HHH,TTT,HHH.隐藏数据是硬币0的结果.估计P0,P1和P2.
http://ai.stanford.edu/~chuongdo/papers/em_tutorial.pdf 有两个硬币A和B,PA和PB是投掷时落在头上的概率.每轮,随机选择一枚硬币,然后扔10次,然后记录结果.观察到的数据是由这两个硬币提供的折腾结果.但是,我们不知道为特定回合选择了哪一枚硬币.估计PA和PB.
虽然我可以得到计算,但我无法将它们的解决方式与原始的EM理论联系起来.具体来说,在两个例子的M-Step期间,我看不出它们是如何最大化任何东西的.它们似乎正在重新计算参数,不知何故,新参数比旧参数更好.而且,两个E-Steps甚至看起来都不相似,更不用说原始理论的E-Step了.
那么这些例子究竟是如何运作的呢?
algorithm computer-science machine-learning data-mining expectation-maximization
可能重复:
有没有办法从保存其类名的字符串中实例化对象?
在C++中,我想让我的用户输入要在运行时创建的对象类型名称,并且,根据我从它们获得的字符串,程序将实例化正确的对象(简而言之,我正在实现工厂方法图案).但是,如果程序必须支持新的对象类型,则不允许修改现有代码.
那么是否有可能从方法中删除所有if ... else if ... else if ...的东西,并且仍然让我的程序实例化特定产品类型的正确对象(在众多中,只有已知的在编译时)?
我的搜索给了我这个链接:有没有办法从持有类名的字符串中实例化对象?它似乎是我想要的,但我根本无法理解代码.
任何帮助将非常感激.
我已经了解了A*,BFS,DFS并且可以很好地实现它们.但是,当我尝试解决pacman路径查找问题时会出现一些问题.让我们假设只有两种类型的迷宫:一种是完整的物品,因为没有空白的方块,一切都是pacman或物品收集或墙; 一个只有少数项目(4个或更少).
如果要收集多个项目,BFS和DFS究竟是如何实现的?在这种情况下,它们仍能产生最佳结果吗?
全项目地图的最佳算法/启发式是什么?到目前为止我所提出的是贪婪的启发式,但由于地图上有太多的东西需要收集,所以它很随意,因此,解决这样的迷宫并不是一个好主意.
在少数项目地图中使用A*,是否有任何好方法可以确定应该首先采取哪个项目?我想过尝试使用Mahattan距离作为粗略估计,但这听起来并不正确,特别是在一些棘手的情况下.
如何获取C#WinForms可执行文件所在的文件夹?
我的程序生成一些临时文件,我想知道可执行文件的位置是否是放置它们的安全位置.
在不安全的环境中,我知道通过使用该fixed语句,我可以获取并固定变量的地址,以便我可以安全地使用获取的指针.但是,有没有办法将此指针安全地存储在某处?如同,使该变量永久固定,直到指针本身被处理.
例如,如果我想要一个指向integer/ float/ 的指针double成为我的不安全类的成员,我该怎么办?
algorithm ×2
c# ×2
pacman ×2
path-finding ×2
winforms ×2
.net ×1
c++ ×1
class ×1
data-mining ×1
directory ×1
graph ×1
heuristics ×1
reflection ×1
theory ×1