贝叶斯随机最优控制

2024-04-29 03:10:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个随机最优控制问题,我想用某种基于贝叶斯仿真的框架来解决。我的问题有以下总体结构:

s_t+1 = r*s_t(1 - s_t) - x_t+1 + epsilon_t+1
x_t+1 ~ Beta(u_t+1, w_t+1)
u_t+1 = f_1(u_t,w_t, s_t, x_t)
w_t+1 = f_2(u_t,w_t, s_t, x_t)
epsilon_t ~ Normal(0,sigma)
objective function: max_{x_t} E(Sigma_{t=0}^{T} V(s_t,x_t,c) * rho^t)

我的目标是探索f_1、f_2和V的不同函数形式,以确定这个模型与非随机模型和另一个更简单的随机模型之间的区别。在

状态变量是s,控制变量是x,u和w代表对当前状态的某种信念。目标函数是t=0至t=t期间收益(函数V)的贴现最大值

我在考虑使用Python,特别是PyMC来解决这个问题,尽管我不确定如何继续,特别是如何优化控制变量。我发现了一本书,出版于1967年,由Masanao Aoki撰写的《随机系统优化》,其中引用了一些可能有用的贝叶斯技术,有没有当前的Python实现可以帮助?或者,有没有更好的方法来模拟一个最佳路径,使用Python?在


Tags: 函数模型框架目标function结构sigmamax
1条回答
网友
1楼 · 发布于 2024-04-29 03:10:26

我想到的第一个猜测是尝试像^{}theano这样的神经网络包,它们可以跟踪成本函数相对于控制函数参数的导数;它们还有一堆优化插件例程。您可以使用numpy.random生成样本(粒子),从库组件组合控制函数,并通过显式Euler方案运行它们,以便首次尝试。这将给你你的粒子的成本函数和它关于参数的导数,这些参数可以提供给优化器。在

这里可能出现的问题是,解算器的迭代将创建一系列导数跟踪对象。在

更新:请参见this example on Github

此外,在Github上还有一些关键字为particle filter python的点击:

https://github.com/strohel/PyBayes

https://github.com/jerkern/pyParticleEst

还有一个a manuscript around提到作者在Python中实现了过滤器,所以您可能需要联系他们。在

相关问题 更多 >