问题标签 [mdp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 带有 Spring 消息驱动 POJO 的 Java 进程需要在一段时间后重新启动才能使用来自 MQ 的消息
我有一个 Java (1.7) 进程,它使用 Spring MDP(Spring 4.2.3 JMS 框架)来读取和处理来自 Websphere MQ 8.1 队列的消息,这些消息在生产中运行良好,几个星期都没有问题;但最近停止使用队列中的消息,直到重新启动(Java 进程已启动并正在运行,并且日志中没有异常/错误)。当我遇到问题时,消息只是在超时后从队列中过期。我必须重新启动该过程的事实表明某处存在问题..因为我只使用 Spring 框架功能,所以我不知道如果再次发生这种情况,我可以做些什么来解决/缩小问题。感谢任何建议采取一些诊断措施..
我注意到,由于网络超时问题,java进程在我遇到问题的那天处理它们时必须多次回滚消息到队列
我在下面附上了 Spring MDP 配置
markov-models - POMDP中值行的含义是什么?
我正在研究 POMDP 文件格式并放弃这个和许多其他链接。我已经理解了所有内容,但我无法理解文件第二行中的 Value 代表什么。它的值是奖励或成本。在别处找不到答案。感到困惑,因为应该可以在一个文档中包含成本和奖励,不是吗?为什么我必须指定其中之一?在文件的其余部分中也没有任何地方没有使用该值。
artificial-intelligence - MDP - 产生转移概率的技术
我正在处理如下 MDP 汽车供需问题,并且正在考虑是否有任何技术可以自动而不是手动生成转移概率矩阵。
假设需求如下:
time, station1, station2
1000, 3, 1
1030, 3, 1
1100, 2, 3
假设从 station1 出发的汽车,有 60% 的机会在 station1 下车,在 station2 下车的几率为 40%。假设从 station2 出发的汽车,有 80% 的机会在 station1 下车,在 station2 下车的可能性为 20%。
我已经手动计算了以下内容。
在时间步 1,
因此,想检查是否有人可以提供见解以自动计算时间步 2 的概率,而不是手动计算。
请为您提供建议。
angularjs - 不更新 ng-model 值
我的代码如下
内部控制器:
内部html
尽管在 HTMl 中我可以查看显示 10:00 的 {{starttime}},但为什么它不附加到 mdp-time-picker ?
python - MDP 和强化学习 - VI、PI 和 QLearning 算法的收敛比较
我已经使用 python 实现了 VI(值迭代)、PI(策略迭代)和 QLearning 算法。比较结果后,我注意到了一些东西。VI 和 PI 算法收敛到相同的实用程序和策略。使用相同的参数,QLearning 算法收敛到不同的实用程序,但与 VI 和 PI 算法的策略相同。这是正常的吗?我阅读了很多关于 MDP 和 RL 的论文和书籍,但找不到任何东西可以说明 VI-PI 算法的实用程序是否应该与 QLearning 收敛到相同的实用程序。
以下信息是关于我的网格世界和结果的。
我的网格世界
- 状态=> {s0, s1, ... , s10}
- 动作 => {a0, a1, a2, a3}其中:a0 = 上,a1 = 右,a2 = 下,a3 = 左,适用于所有状态
- 有 4 个终结状态,分别有+1、+1、-10、+10奖励。
- 初始状态为s6
- 一个动作的转移概率是P,并且(1 - p) / 2移动到该动作的左侧或右侧。(例如:如果 P = 0.8,当智能体尝试向上移动时,智能体有 80% 的机会向上移动,并且有 10% 的机会向右移动,10% 向左移动。)
结果
- VI 和 PI 算法结果,奖励 = -0.02,折扣因子 = 0.8,概率 = 0.8
- VI在50次迭代后收敛,PI在3次迭代后收敛
- QLearning 算法结果,奖励 = -0.02,折扣因子 = 0.8,学习率 = 0.1,Epsilon(用于探索)= 0.1
- QLearning 结果图像上的结果效用是每个状态的最大 Q(s, a) 对。
qLearning_1million_10million_iterations_results.png
此外,我还注意到,当 QLearning 进行 100 万次迭代时,距离 +10 奖励终端同样远的状态具有相同的效用。代理似乎并不关心它是否从接近 -10 终端的路径获得奖励,而代理在 VI 和 PI 算法上关心它。这是因为在 QLearning 中,我们不知道环境的转移概率吗?
python - 为多终端的 2D 游戏创建 MDP // 人工智能
所以我相信每个人都听说过伯克利吃豆人人工智能挑战赛。不久前,我创建了一个 2D 平台游戏(不滚动),并认为从这个项目中获得一些灵感但为我的游戏创建一个 AI(而不是 PacMan)会很酷。话虽如此,我发现自己非常卡住。我查看了 PacMan 的几个 GitHub 解决方案以及大量关于在 Python 中实现 MDP / 强化学习的文章。我很难将它们与我的游戏联系起来。
在我的游戏中,我有 10 个关卡。每个关卡都有水果,一旦agent抓到所有水果,完成关卡,下一个关卡开始。这是一个示例阶段:
正如你在这张照片中看到的,我的经纪人是小松鼠,他必须抓住所有的樱桃。在地面上还有他无法行走的尖刺(或者你会失去生命)。您可以通过跳跃来避免尖峰。因此,从技术上讲,跳跃将代理向左或向右移动 2 个空间(取决于他面对的方式)。除此之外,您可以在梯子上左右移动。你不能跳超过 1 格,所以你看到顶部的“2+ 间隔”,你必须爬下梯子四处走动。此外,上图中没有显示,只有在您必须躲避的地板上左右移动的敌人(您可以跳过它们,或者只是避开它们)。它们在网格上进行跟踪,我将在下面讨论。以上就是关于游戏的一些内容,如果您需要更多说明,请随时询问,我可以提供帮助,
在我的代码中,我有一个网格,其中包含地图上的所有空间以及它们是什么(平台、常规点、尖峰、奖励/水果、梯子等)。使用它,我创建了一个动作网格(下面的代码),它基本上将代理可以从每个位置移动的所有点存储在字典中。
在这一点上,我有点停留在如何/需要发送到 MDP 上。我正在使用Berkeley MDP,但我对如何开始参与和实施它感到非常困惑。我有一堆数据点和东西在哪里,只是不确定如何真正让球滚动。
我有一个布尔网格,可以跟踪所有有害物体(尖刺和敌人),并且由于敌人每秒都在移动,因此会不断更新。
我创建了一个奖励网格,设置:
- 尖峰“-5”奖励
- 掉落地图“-5”奖励
- 水果是“5”奖励
- 其他一切都是“-0.2”奖励(因为您想优化步骤,而不是整天都在级别 1)。
在研究解决方案或实施此方法的过程中,我遇到的另一部分问题是,大多数解决方案都是汽车开到某个位置。所以他们只有一个奖励位置,而我的每个阶段有多个水果。是的,我只是超级卡住并对此感到沮丧。想尝试我自己的东西,但如果我不能这样做,我还不如只做吃豆人,因为有几种在线解决方案。感谢您的时间和帮助!
编辑:所以这是我试图做一个示例调用,让移动网格恢复,尽管据我了解(并且很明显)它会在代理执行的每一步之后动态变化,因为敌人会威胁到某些位置和所有位置。
这就是结果,你可以看到它很接近,但显然有点坚持有多个奖励的事实。我觉得我可能很接近,但我不确定。在这一点上,我有点沮丧。
python - 使用 python 实现 MDP - 维度
我在mdp
用python实现(马尔科夫决策过程)时遇到问题。
我有这些矩阵:states: (1 x n)
.Transitionactions: (1 x m)
矩阵由以下代码计算:
和此代码的奖励矩阵:
为了获得最佳值,python中的“quantecon包”定义为:
其中 Q : 转移矩阵应该是m x n x m
。
谁能帮我理解 Q 如何成为 (m,n,m) matirx?!先感谢您。
artificial-intelligence - I-POMDP(交互式 POMDP)NEXP 是否完整?
我知道 Dec-POMDP(分散式 POMDP)对于有限时间步是 NEXP 完备的,但我想知道 I-POMDP 是否也是 NEXP 完备的!如果不是,那么 I-POMDP 的复杂性是什么?我对此进行了一些研究,但不幸的是无法得到正确的答案。提前致谢。