最高得分的顺序?

时间:2017-01-19 20:27:16

标签: algorithm reinforcement-learning q-learning

假设我有n个状态S = {s1,s2,s3,..... sn}并且我有每个转换的分数,即T矩阵f.e。 s1-> s5 = 0.3,s4-> s3 = 0.7,......等。

我应该使用什么算法或程序来选择从state-x(s_x)开始的最佳得分序列/路径。

两个问题:

  1. 选择最好的下一个状态,以便在无限长的路径中我平均选择尽可能最好的状态?
  2. 给定路径长度L,选择将产生最高分数的状态序列?
  3. 我目前正在研究强化学习,但这似乎有些过分,因为我既没有行动,也没有政策。也许我可以使用像Value函数这样的东西,dunno。

    你会用什么?

    PS>在某些情况下,T矩阵可能会随着时间而改变。

    http://mnemstudio.org/path-finding-q-learning-tutorial.htm

    似乎Q-learning是一个不错的选择。我看到的唯一区别是,如果我随着时间的推移存储Q值,我必须想办法改变T矩阵。

    第二个更难的是没有最终目标,而只是改变中间人得分。可能我不需要改变算法,它只会转向改变分数,我认为这是可以的。

    我最初的想法是每次执行L步骤的最佳路径(即每次从头开始重新计算Q),但如果可以的话,我宁愿根据传入的数据保留更改的Q表。

1 个答案:

答案 0 :(得分:2)

您的选项1将被称为贪心方法。这通常是指立即选择最佳"选项。问题在于,贪婪的选择现在可以限制您将来的最佳选择。

如果你没有设定路径长度的限制,那么很明显最高分数是无限的。

所以现在的问题是:给定路径长度的最佳序列是什么?这可以通过动态编程等多项式时间来解决。

一个递归公式(你可以用来计算动态编程部分)会说:要从状态x开始计算出长度为L的最佳路径,请查看所有其他状态年。对于这些中的每一个,从状态y"开始计算T_xy +"长度为L-1的最佳路径。

显然,从某个状态x开始,长度为1的最佳路径将是"下一个最佳状态",因此您的递归具有简单的基本情况。