ÎncepețiÎncepe gratuit

Modelarea unei stații de carburant: generatoare Python

Imaginează-ți că un client dorește să construiască o stație de carburant și ți s-a cerut să creezi un model de simulare cu evenimente discrete pentru a determina numărul optim de pompe și dimensiunea rezervorului comun de combustibil folosit de acestea. Modelul presupune simularea sosirii mașinilor la stație și a resurselor disponibile: pompele și rezervorul de combustibil. În acest exercițiu, ne vom concentra pe doi pași:

Pasul 1: Creează un generator care să simuleze sosirea mașinilor la stația de carburant, solicitarea unei pompe și alimentarea rezervoarelor acestora.

Pasul 2: Creează un generator care să verifice nivelul rezervorului și să solicite o reîncărcare atunci când este nevoie. De asemenea, comportamentul rezervorului de reîncărcare trebuie modelat.

În exercițiul următor, vei crea mediul SimPy, vei adăuga procese și resurse, și vei rula simulări.

Numărul pompelor de carburant este limitat și simulat cu ajutorul unei resurse SimPy stocate în variabila gas_station_pumps.

Acest exercițiu face parte din cursul

Simulare de evenimente discrete în Python

Vezi cursul

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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.")
Editează și rulează codul