随机决策算法

我正在做一个简单的 AI,并且是这个领域的新手。我需要一个算法,可以基于一些参数做出某种决策;但需要带有一点随机性。到目前为止,我一直在做的是生成一个随机数,并根据我得到的不同值,采取不同的执行路径。我总觉得有一种更好的方法来做这件事。你能给我一些提示吗?


回答:

我不认为存在比你正在做的“更好”的方法,因为问题描述相当模糊,并且不清楚这实际上是一个人工智能问题还是一个模拟问题。

对于决策部分,通常使用一个简单的启发式系统(基于你对被建模行为的直观理解)就足够了,该系统是一系列条件语句,可能带有一些随机因素来使其多样化。你可以使用加权平均系统,该系统选择几个选项,根据感知的质量对它们进行排序,然后随机选择一个选项,同时偏向于更好的值。(这被称为轮盘赌选择或适应度比例选择,在遗传算法领域很常见,但在遗传算法之外也非常有用。)

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

一个我可以开始的简化示例是,玩家 AI 选择他们想将球击打到哪里。我将球的预期方向计算为一个向量,该向量会将球精确地发送到计划的位置。然后,系统会根据球的方向,速度,玩家的能力等计算一个从 0%到 100%的难度分数。我生成一个“不准确性”修改器,该修改器是一个介于 0%和难度%之间的随机数,这意味着一个非常容易的击球将是完全准确的,而一个半难的击球将在 0%到 50%之间变化。然后,我计算一个随机的归一化单位长度3D向量,将其缩放为不准确性值,然后将其添加到预期方向。这意味着更困难的击球往往会偏离目标更远。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注