Algorthm大规模路口信号灯决策下的DQN

1) 输入:初始化主网络 q 0 ,目标网络 q 1 ,设定相关超参数

2) 初始化经验回放D至容量N的经验池中

3) 随机权重 θ 初始化动作价值函数Q的权重 θ = θ ,设定相关超参数

4) 对于每个回合:

5) 初始化交通系统环境中交通流及每个智能体的状态 S 0

6) 如果回合未结束:

7) 在 ε 的情况下选择随机动作 a t 进行决策;

8) 否则:根据环境 S t 和主网络选择动作 a t = arg max a q 0 ( s t , a t , θ )

进行信号灯决策继续保持当前相位还是切换下一相位;

根据得到动作在环境中执行相位;如果相位变化则先执行3s黄灯,

周期结束根据交通流状态 s t ,得到奖励 r t ,和新状态 s t + 1

9) 将四元组 ( s t , a t , r t , s t + 1 ) 存入到经验池D中;

10) 从经验池D中随机采样出一小批经验;

11) 计算当前目标估计值 y i = { r t , r t + γ arg max a q 0 ( s t , a t , θ ' ) ,

12) 更新主网络 q 0 ,以 ( y i Q ( s t , a t , θ ) ) 2 为目标值做梯度下降;

13) 将新的交通系统环境状态定义为当前状态 s t + 1 = s t

14) 在一定步数后,用主网络的权重更新目标网络 q 1 = q 0

15) 直到迭代结束,当前交通系统环境 s t 是终止状态

16) 输出:训练后的主神经网络 q 0