我正在制作一个简单的AI,我对这个领域非常陌生。我需要的是一种基于某些参数做出某种决定的算法;但有一点随机性。到目前为止,我一直在做的是根据我得到的不同值生成一个随机数;采取不同的执行路径。我以某种方式认为有更好的方法来做这种事情。你能给我一些指点吗?随机决策算法
随机决策算法
回答
我不认为有比你所做的更好的方法,因为问题描述非常模糊,而且它实际上是人工智能问题还是模拟问题尚不清楚。
对于决策部分,通常可以使用简单的启发式系统(基于对被建模行为的直观理解),这是一系列条件语句,可能有一些随机因素会使其变化一点。你可以有一个加权平均系统,选择几个选项,根据感知质量进行排名,然后随机选择一个选项,同时偏向于更好的值。 (这被称为轮盘选择或遗传算法圆圈中的fitness proportionate selection,但在GA之外也非常有用。)
对于模拟零件,您通常需要对过程进行建模,然后引入随机性,以模拟更细微的部分该过程。这意味着要清楚地定义你的输入(反手力量,球的方向,......)和你的输出(球的行进向量?),并考虑它们如何相互关联。这意味着你得到了一些已知值的输出,然后你可以用你的随机数发生器修改它们。如果您试图模拟人类的选择而不仅仅是物理模拟,情况会变得更加复杂,因为这通常优先于所有其他输入。
我可以从一个简单的例子开始,就是玩家AI选择他们想要击球的地方。我将球的计划方向作为一个矢量来计算,该矢量可以将球准确地发送到计划的地方。然后系统根据球的方向,速度,球员的能力等计算0%到100%的难度分数。我生成一个'不准确'修饰符,它是0%和难度%之间的一个随机数,这意味着一个完美的镜头将是完全准确的,而半球镜头的准确度在0%和50%之间。然后,我计算一个随机归一化的单位长度三维矢量,通过这个不准确的值进行缩放,并将其添加到预期的方向。这意味着更难的镜头会倾向于进一步偏离目标。
与大多数关于随机性的问题一样,值得一问的是你要找的是真正的随机性,即白噪声还是湍流(又名Perlin Noise)。一般来说,在大多数领域中,你更可能从湍流中获得看起来比白噪声更“自然”的行为。
根据结果与最佳“期望”状态或结果的接近程度给每个执行路径分数。使您的算法根据以前的决策的平均得分选择其未来的执行路径,从而以最高得分的决策给出更大的结果概率。这样,它看起来就好像你的算法不仅仅是学习,而且随机地探索其他可能性,但比做似乎最好的概率要低。当然,通过不仅考虑每个决策路径的分数,而且还考虑其增长率或收缩率,可以使其具有适应性。如果一个决定开始是好的,但是经过多次迭代后,得分越来越低,应该避免更频繁地支持另一个决定谁的得分有增长的趋势。
- 1. 随机决策树分类
- 2. 使用随机制作决策
- 3. 随机性算法
- 4. 随机数算法
- 5. 随机组算法
- 6. 机Java解决决策表
- 7. 框架算法决策过程
- 8. 算法来表示决策表
- 9. 理解变革的决策算法
- 10. 递归排序算法的决策树
- 11. Drools决策表条件检查算法
- 12. 构建一个算法决策树
- 13. BDD(二元决策图)算法?
- 14. 随机优化算法
- 15. 随机聚类算法
- 16. 随机Prim的算法
- 17. 随机布局算法
- 18. 适应性随机算法
- 19. 随机绘图算法
- 20. 约随机选算法
- 21. 随机数的算法
- 22. 算法分析:随机数
- 23. “平滑”随机数算法
- 24. 如何计算决策树
- 25. 随机生成TSP解决方案的算法
- 26. 如何制作(是/否或1-0)随机森林决策?
- 27. “决策森林”和“随机森林”的简洁区分
- 28. 如何生产XG增强/决策树/随机森林模型
- 29. 多类决策森林vs随机森林
- 30. 机器学习,决策树
你可以多说一下你想做什么样的决定?这是纯粹的选择之间的一些无关的决定,你正在使用一个体面的随机数字发生器,那么你在做什么听起来不是太糟糕。 – 2009-12-01 18:39:51
这是一款运动模拟器;让我们说网球。根据球员的反手力量,球的入球方向等参数,我想模拟一个镜头;增加一些随机性;但仍然基于上述参数。 – Anoop 2009-12-02 05:03:50