शुरू करेंमुफ़्त में शुरू करें

एक पेट्रोल स्टेशन का मॉडलिंग: Python जेनरेटर

मान लीजिए एक क्लाइंट गैस स्टेशन बनाना चाहता है, और आपसे एक डिस्क्रीट-इवेंट मॉडल बनाने के लिए कहा गया है ताकि गैस पंपों की इष्टतम संख्या और उन पंपों द्वारा उपयोग किए जाने वाले कॉमन फ्यूल टैंक का आकार तय किया जा सके। इस मॉडल में गैस स्टेशन पर आने वाली कारों और स्टेशन के संसाधनों—पंप और फ्यूल टैंक—का सिमुलेशन करना होगा। इस अभ्यास में, हम निम्न दो चरणों पर ध्यान देंगे:

चरण 1: एक जेनरेटर बनाएँ जो गैस स्टेशन पर कारों के आगमन, पंप का अनुरोध करने, और कार टैंक को रिफिल करने का सिमुलेशन करे।

चरण 2: एक जेनरेटर बनाएँ जो टैंक के स्तर की जाँच करे और ज़रूरत पड़ने पर रिफिल टैंक को बुलाए। साथ ही, रिफिल टैंक के व्यवहार को भी मॉडल करना होगा।

अगले अभ्यास में, आप SimPy एन्वायरनमेंट बनाएँगे, प्रक्रियाएँ और संसाधन जोड़ेंगे, और सिमुलेशन चलाएँगे।

गैस पंपों की संख्या सीमित है और उन्हें SimPy रिसोर्स के रूप में सिमुलेट किया गया है, जो वैरिएबल gas_station_pumps में स्टोर है।

यह अभ्यास पाठ्यक्रम का हिस्सा है

Python में Discrete Event Simulation

पाठ्यक्रम देखें

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

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.")
कोड संपादित करें और चलाएँ