一种求解有限水平、有限状态随机动力程序的逆向归纳法的简单实现。

stochasticdp的Python项目详细描述


逆向归纳求解的一种简单实现 有限视界,有限空间随机动力程序。

安装

stochasticdp在pypi上可用:

pip install stochasticdp

用法

初始化随机动态程序:

dp=StochasticDP(number_of_stages,states,decisions,minimize)

其中

  • number_of_stages是一个整数
  • states是一个列表
  • decisions是一个列表
  • minimize是布尔值

这就产生了一个阶段编号的随机动态程序 0, ..., number_of_stages - 1,并初始化以下内容 词典:

  • dp.probability,其中dp.probability[m, n, t, x]是 在阶段^{tt11}中从状态n移动到状态m的概率$ 根据决定x
  • dp.contribution,其中dp.contribution[m, n, t, x]是 从状态n移动到 状态m处于阶段t处于决策x
  • dp.boundary,其中dp.boundary[n]是边界条件 对于状态为n
  • 的值go函数

您只需要定义转换的概率和贡献 以正概率发生。

您可以使用下面的helper函数来填充这些 词典:

# This sets dp.probability[m, n, t, x] = p and dp.contribution[m, n, t, x] = cdp.add_transition(stage=t,from_state=n,decision=x,to_state=m,probability=p,contribution=c)# This sets dp.boundary[n] = vdp.boundary(state=n,value=v)

求解随机动态程序:

value,policy=dp.solve()

其中

  • value是字典:value[t, n]是要去的值 阶段t和状态n
  • 的函数
  • policy是字典:policy[t, n]是一组优化器 第value[t, n]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
多线程Java可运行接口解决方案   java指向这些方法的uri是什么样子的   java处理:一个对象忽略if语句   在DispatcherServlet中找不到URI为[***]的HTTP请求的java映射   java Weka未启动。只有黑屏消失了   java如何根据对象的一个属性对对象数组进行排序?   eclipse在Kotlin注释参数中使用java常量   用于截锥剔除的java截锥未正确创建   java如何让多个活动使用相同的跟踪活动?   通过安卓的woocommerce api中的java错误Url   来自另一个文件的JSTL中每个循环的java   java使用安卓应用程序中的数据库保存gps位置   Java中比较linkedHashMap值和字符串的类型转换   在java中,有没有一种方法可以从一开始就使用Kafka流(而不是通过KafkaConsumer)读取消息?   使用jmonkeyengine在安卓上运行basicgame的java疑难解答   java中的millis字符串格式   Java泛型、反射API和JDBC:无法映射Java。朗和爪哇。sql。类型的时间戳   java在DynamoDB中以历元格式自动填充时间