開始使用免費開始

建模加油站: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.")
編輯並執行程式碼