例4.2:
杰克管理一个全国性汽车出租公司的两个地点。每天一些顾客到这两个地点租车。如果有车可租,杰克就将车租出并从公司得到10美元的回扣。如果这个地点没车,杰克就失去了这笔生意。还回的车第二天就可以出租。为了使需要车的地点有车可租,每天晚上,杰克可以在两个地点间移动车辆,移动每辆车的费用是2美元。我们假设每个地点的车的需求量和归还量都是泊松分布变量。假设租车的期望值是3和4,还车的期望值是3和2。
为了简化问题,我们假设每个地点的车不多于20辆(多于的车被还回公司,在此问题中消失了)并且一晚上最多移动5辆车。折扣率为0.9,并描述为一个有限MDP问题,时刻按天计算,状态是每天结束时两个地点的车辆数,动作是晚上在两个地点间移动的车辆数。
一,求动力(dynamics)P(s',r|s,a)
首先困扰我的是动作发生时间,顺序是 移车-借车-还车,还是 借车-还车-移车。顺序不同,车辆数不同。 反复读题后选择了“ 移车-借车-还车” 的顺序。
第二个困扰我的是,如何统计状态转移概率?参考大佬代码后明白,分为以下几步
先由泊松分布公式,计算出A,B两地借还车数量的概率
def poisson_calculator(Lambda=3):
result = {}
for i in range(0, 21):
result[i] = max(np.finfo(float).eps, abs((np.power(Lambda, i) / (np.math.factorial(i))) * np.exp(-Lambda)))#防止result中出现0
return result
customer_A =