开始使用免费开始使用

建模加油站:Python 生成器

设想一位客户要建一座加油站,邀请您创建一个离散事件模型,帮助确定加油枪的最优数量以及供所有加油枪使用的公共油罐容量。该模型需要同时模拟到站车辆的到达,以及加油站的资源:加油枪与油罐。在本练习中,我们将专注于以下两个步骤:

步骤 1:创建一个生成器,模拟车辆到达加油站、申请一个加油枪、并为车辆油箱加油。

步骤 2:创建一个生成器,用于检查油罐的液位,并在需要时请求补给油罐。同时,需要对补给油罐的行为进行建模。

在下一个练习中,您将创建 SimPy 环境,添加进程与资源,并运行模拟。

加油枪数量有限,使用一个 SimPy 资源进行模拟,存储在变量 gas_station_pumps 中。

本练习是课程的一部分

Python 中的离散事件模拟

查看课程

交互式实操练习

通过完成这段示例代码来试试这个练习。

def car(name, env, gas_station_pumps, gas_station_tank):

    fuel_tank_level = random.randint(*FUEL_TANK_LEVEL)
    print(f"{name} arriving at gas station at {env.now}")

    # Request pump
    with gas_station_pumps.____() as req:
        start_time = env.now

        # Yield the pump request
        ____ req

        liters_required = FUEL_TANK_SIZE - fuel_tank_level

        # Remove liters_required from the tank
        yield gas_station_tank.___(liters_required)

        yield env.timeout(liters_required / REFUELING_SPEED)
        print(f"{name} finished refueling in {env.now - start_time} seconds.")
编辑并运行代码