首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随机决策算法

随机决策算法
EN

Stack Overflow用户
提问于 2009-12-02 02:31:15
回答 3查看 1.2K关注 0票数 2

我正在做一个简单的人工智能,我真的是这个领域的新手。我需要的是一种算法,可以根据一些参数做出某种决策;但要有一点随机性。到目前为止,我一直在做的是生成一个随机数,并基于我获得的不同值;采用不同的执行路径。不知何故,我认为有一种更好的方法来做这类事情。你能给我一些建议吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-02 19:26:54

我不认为有比你所做的更好的方法,因为问题描述相当模糊,并且它实际上是人工智能问题还是模拟问题还不清楚。

对于决策部分,通常可以有一个简单的启发式系统(基于您对正在建模的行为的直观理解),该系统是一个条件语句序列,其中可能包含一些随机因素,以使其稍有不同。你可以有一个加权平均系统,它挑选几个选项,根据感知的质量对它们进行排名,然后随机挑选一个选项,同时偏向更好的值。(这在遗传算法圈中称为轮盘赌轮选择或fitness proportionate selection,但在GAs之外也非常有用。)

对于模拟部分,您通常希望对流程进行建模,然后引入随机性来对流程中更微妙的部分进行建模。这意味着清楚地定义你的输入(反手力量,球的方向,...)和你的输出(球运动矢量?),并考虑它们之间的关系。这意味着您将得到一些已知值的输出,然后您可以使用随机数生成器对其进行修改。如果你试图模拟一个人的选择,而不仅仅是一个物理模拟,事情就会变得更加复杂,因为这通常优先于所有其他输入。

我可以从一个简单的例子开始,球员AI选择他们想要击球的地方。我计算出球的预期方向作为一个向量,它将球准确地送到计划的地方。然后,系统根据球的方向、速度、球员的能力等计算难度分数,从0%到100%。我生成一个“不准确”修饰符,它是一个介于0%和难度%之间的随机数字,这意味着完全容易的投篮将是完全准确的,而半困难的投篮将在0%和50%的准确率之间变化。然后我计算一个随机归一化的单位长度3D向量,用不精度值缩放它,并将其添加到预期的方向。这意味着更难的投篮往往会飞得离目标更远。

票数 4
EN

Stack Overflow用户

发布于 2009-12-02 02:38:14

与大多数关于随机性的问题一样,问一问你正在寻找的是不是真正的随机性,即白噪声或湍流(也称为Perlin Noise),这是值得的。一般来说,在大多数领域中,你更有可能从湍流中获得比白噪声更“自然”的行为。

票数 0
EN

Stack Overflow用户

发布于 2009-12-02 02:46:47

根据结果与最佳的、“期望的”状态或结果的接近程度,对每个执行路径进行评分。使您的算法根据以前决策的平均得分来选择其未来的执行路径,从而为得分最高的决策提供更大的结果概率。这样,看起来你的算法不仅在学习,而且还在随机探索其他可能性,但概率比做看起来最好的事情要低。当然,您可以使其自适应,不仅要考虑每个决策路径的得分,还要考虑其增长或收缩的速度。如果一个决策开始是好的,但经过多次迭代后,它的得分越来越低,应该更多地避免它,以支持得分有上升趋势的另一个决策。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1827993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档