用于优化模拟决策的最佳算法

时间:2011-02-24 00:55:48

标签: algorithm optimization artificial-intelligence simulation decision-tree

我正在寻找最佳算法来优化同步决策,以便在合理的时间内找到快速结果。同意做了许多“滴答”,偶尔需要做出决定。最终达到目标状态。 (如果做出非常糟糕的决定,就有可能永远不会达到目标状态)

有很多目标国家。我想找到具有最少滴答数的目标状态(刻度大约相当于现实生活中的一秒。“我基本上想要决定在尽可能短的几秒内做出哪些决定来达到目标​​,

关于问题域的一些观点:

  • 直接击球我可以产生一系列选择,这将导致一个解决方案。它不会是最佳的。
  • 我有一个合理的启发式功能来确定什么是一个好的决定
  • 我有一个合理的功能来确定从节点到目标的最小可能时间成本。

算法:

  • 我需要处理这个问题大约10秒钟,然后给出最好的答案。
  • 我相信A *会找到我最理想的解决方案。问题是决策树会很大,以至于我无法快速计算出来。
  • IDA *会在10秒内给我一个很好的前几个选择,但我需要一条路径才能达到目标。

目前我认为我将从目标的已知非最佳路径开始,然后使用模拟退火并尝试在10秒内改进它。

尝试解决此类问题的研究算法是什么?

2 个答案:

答案 0 :(得分:1)

让我们了解一些事实。

1)确定哪个决策最佳的唯一方法是测试每个可能的决策并根据某些标准评估结果。

2)我们极不可能有时间决定完成所有可能的决定,因此我们必须限制未来我们将在多大程度上评估决策。

3)我们极不可能做出最好的举动〜永远〜。不只是经常,而是永远。除非你只有几个决定,否则你每次做出决定的可能性都很大,有一个你没有做过的更好的决定。

4)我们可以利用我们之前的决定如何发挥作用。

把所有这些放在一起...让我们说一下,当我们做出决定时,我们会评估未来30个刻度会发生什么,在30个刻度中,我们可以检查实际发生的是否与我们模拟的30个刻度前相符。如果是的话,我们知道这个决定会产生可预测的结果,我们应该少用这个决定。如果我们没有,或者结果比我们希望的更好,我们应该更多地使用这个决定。

理想情况下,您可以在模拟仿真中使用逻辑......以便进行评估。然后,当您进行“真实”模拟时,您有更好的机会更早地选择更好的决策。当然,与模拟的模拟结果相比,对实际模拟结果的结果给予更高的权重。

答案 1 :(得分:1)

查看有限的差异搜索,重复对最大差异搜索或波束搜索越来越宽松的限制。

如果你有一个好的启发式,你应该能够用它来比较个别选择 - 对于有限的差异搜索,并比较部分解决方案,用于波束搜索。

看看你是否可以对部分解决方案的扩展有多好。然后,您可以删除无法扩展的部分解决方案,以便从启发式算法中获得结果,或者在一系列深度增加的迭代搜索中找到的最佳结果。