Začněte nyníZačněte zdarma

Modelování čerpací stanice: generátory v Pythonu

Představ si, že klient chce postavit čerpací stanici a ty máš za úkol vytvořit diskrétně-událostní model, který pomůže určit optimální počet výdejních stojanů a velikost společné palivové nádrže. Model simuluje příjezdy aut na čerpací stanici a dostupné zdroje: stojany a palivovou nádrž. V tomto cvičení se zaměříme na tyto dva kroky:

Krok 1: Vytvoř generátor, který simuluje příjezdy aut na čerpací stanici, žádost o přidělení stojanu a tankování.

Krok 2: Vytvoř generátor, který sleduje hladinu nádrže a při potřebě vyžádá doplnění. Nezapomeň také namodelovat chování doplňovacího vozidla.

V příštím cvičení vytvoříš SimPy prostředí, přidáš procesy a zdroje a spustíš simulace.

Počet výdejních stojanů je omezený a je simulován jako SimPy zdroj uložený v proměnné gas_station_pumps.

Toto cvičení je součástí kurzu

Diskrétní simulace událostí v Pythonu

Zobrazit kurz

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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.")
Upravit a spustit kód