强化学习-动态规划-杰克租车问题

该博客讨论了一个基于有限马尔科夫决策过程(MDP)的租车调度问题。杰克管理两个租车点,需要在每天晚上根据泊松分布预测的租车和还车数量来决定车辆的调动,以最大化利润并考虑移动成本。博主通过泊松分布计算各地点的租车和还车概率,并模拟所有可能的情况来确定状态转移概率P(s',r|s,a)。此外,博客还涉及策略评估,以优化车辆调度策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

例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 =
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值