เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การสร้างแบบจำลองสถานีบริการน้ำมัน: Python generators

สมมติว่าลูกค้ารายหนึ่งต้องการสร้างสถานีบริการน้ำมัน และคุณได้รับมอบหมายให้สร้างแบบจำลอง discrete-event เพื่อช่วยกำหนดจำนวนหัวจ่ายน้ำมันที่เหมาะสมและขนาดของถังเชื้อเพลิงรวมที่ใช้ร่วมกัน แบบจำลองนี้ต้องจำลองรถยนต์ที่เข้ามาใช้บริการและทรัพยากรของสถานี ได้แก่ หัวจ่ายน้ำมันและถังเชื้อเพลิง ในแบบฝึกหัดนี้ เราจะมุ่งเน้นสองขั้นตอนต่อไปนี้:

ขั้นตอนที่ 1: สร้าง generator เพื่อจำลองการมาถึงของรถยนต์ที่สถานีบริการน้ำมัน การขอใช้หัวจ่าย และการเติมน้ำมันในถังรถ

ขั้นตอนที่ 2: สร้าง generator เพื่อตรวจสอบระดับน้ำมันในถังและส่งคำขอเติมถังเมื่อจำเป็น รวมถึงต้องจำลองพฤติกรรมของการเติมถังด้วย

ในแบบฝึกหัดถัดไป คุณจะสร้าง SimPy environment เพิ่ม process และทรัพยากร แล้วรันการจำลอง

จำนวนหัวจ่ายน้ำมันมีจำกัด และถูกจำลองโดยใช้ทรัพยากร 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.")
แก้ไขและรันโค้ด