benchmark_rule_based.py

这段代码实现了一个基于规则控制器的温室环境模拟实验。它通过加载环境参数、初始化温室环境、运行规则控制器,并记录实验结果(如状态、控制信号、奖励、利润、违规次数等)。以下是代码的详细解释:


1. 代码结构

代码主要由以下几个部分组成:

  1. run_rule_based_controller 函数:

    • 运行规则控制器,模拟温室环境的一个 episode。

    • 记录温室状态、控制信号、气象数据、时间、奖励、利润和违规次数。

  2. 主程序:

    • 解析命令行参数(如环境 ID、训练或测试模式、配置文件名称等)。

    • 加载环境参数并初始化温室环境。

    • 运行多个 episode 的模拟实验,并保存结果。


2. 核心功能

2.1 规则控制器

  • run_rule_based_controller:

    • 重置环境并初始化记录数组(如状态、控制信号、气象数据、时间、奖励、利润和违规次数)。

    • 在每个时间步长中,随机生成动作并执行环境步进。

    • 记录每个时间步长的状态、控制信号、气象数据、时间、奖励、利润和违规次数。

2.2 实验运行

  • 主程序:

    • 解析命令行参数并加载环境参数。

    • 初始化多个温室环境实例。

    • 运行多个 episode 的模拟实验,并记录结果。

    • 将结果保存到 CSV 文件中。


3. 代码的应用场景

  • 温室控制策略评估:

    • 用于评估基于规则的控制策略在温室环境中的性能。

    • 通过记录状态、控制信号、奖励、利润和违规次数,分析控制策略的经济效益和温室状态稳定性。

  • 强化学习基线:

    • 作为强化学习算法的基线,比较规则控制器和 RL 算法的性能。

  • 数据生成:

    • 生成温室环境模拟数据,用于后续分析和模型训练。


4. 关键参数

4.1 命令行参数

  • env_id:

    • 温室环境的 ID(如 GreenLightRuleBased)。

  • n_years:

    • 模拟的年数。

  • train_or_test:

    • 运行模式(训练或测试)。

  • config_name:

    • 配置文件的名称(如 benchmark-rule-based)。

  • save:

    • 是否保存实验结果。

4.2 环境参数

  • env_base_params:

    • 温室环境的基本参数(如时间步长、状态数量、控制输入数量等)。

  • env_specific_params:

    • 温室环境的特定参数(如作物状态、价格参数等)。

  • options:

    • 温室环境的选项(如生长年份、起始日期等)。

4.3 实验结果

  • results:

    • 用于存储实验结果的 Results 对象。


5. 示例

运行实验

bash
复制
python run_rule_based_controller.py --env_id GreenLightRuleBased --n_years 10 --train_or_test test --config_name benchmark-rule-based --save

输出结果

  • CSV 文件:

    • 保存实验结果的 CSV 文件(如 benchmark-60.csv)。

    • 包含温室状态、控制信号、气象数据、时间、奖励、利润和违规次数。


6. 总结

这段代码实现了一个基于规则控制器的温室环境模拟实验。它通过加载环境参数、初始化温室环境、运行规则控制器,并记录实验结果,适用于温室控制策略评估、强化学习基线测试和数据生成。通过命令行参数和配置文件,可以灵活调整实验设置和运行模式。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇