将历史数据日志文件转换为马尔可夫决策过程 (MDP) 以执行 Q 学习的最佳方法是什么

问题描述

假设,我有一个历史日志文件,其条目包含每秒记录的一组文件(25,000 个文件,大小从 101KB 到 222MB)传输的瞬时吞吐量。文件集在源 A 和目标 B 之间传输。历史日志文件中的每个日志条目包含以下特征/字段:文件#、文件大小、源、目标、TCP 通道数(即打开 TCP 通道以发送文件)、BDP、带宽、RTT 和目标瞬时吞吐量。 TCP 通道的数量范围在 1 到 50 之间。使用 TCP 通道 (1 – 50) 多次传输完整的文件集。历史日志文件包含每个实验运行的数千个日志条目。 目标是使用 Q-learning 来最大化总数据传输吞吐量,方法是找到最佳策略和操作值,在数据传输期间动态调整 TCP 通道的数量,以实现最大吞吐量。我的问题是:

  1. 我该如何转换这个历史日志文件(有数千个日志 条目)到要用于执行的马尔可夫决策过程(MDP) Q-学习?另外我如何以编程方式执行此操作(最好在 java 既然程序是用 java 编写的? 理论上,集合 状态可以定义为具有相应特征的特征 瞬时吞吐量。然而,即使使用瞬时吞吐量 可以呈现近乎无限的状态集,因为各个值 每个日志条目可以是唯一的(例如:115.59 Mb/s、114.55 Mb/s、 113.42 Mb/s、117.73 Mb/s、...等)。这组动作理论上可以定义为以下动态动作:1.) 将 TCP 通道数增加 n,2。) 减少 TCP 通道数 TCP 通道数 n,3.) 保持 TCP 通道数不变。 注意 n 可以是 1 到 50 之间的任何数字,具体取决于当前 正在使用的 TCP 通道数量,因此每个操作都有很多选项。

  2. 在java中以编程方式(因为我使用java编写程序到 执行传输并收集历史数据),我会怎么样 能够定义这么大的状态空间,定义可用的集合 动作和(状态,动作)对以及相关联 过渡状态和相应的过渡概率?

  3. 以编程方式,我将如何填充大型 Q-Table (初始化 Q-Table - 使用操作值)?我是否应该使用 Q-table 还是我应该使用函数逼近器?还有我怎么办 确定我应该使用线性函数还是非线性函数 逼近器?

  4. 我了解 Q-learning 通常从探索开始 有限离散 MDP 定义,但即使没有上述历史 数据日志,如何定义一个状态这么大的MDP 上面提到的空间、动作空间和状态转换空间?

任何建议、意见和建议将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)