Mulai sekarangMulai gratis

Memodelkan SPBU: generator Python

Pertimbangkan bahwa seorang klien ingin membangun SPBU, dan Anda diminta membuat model peristiwa-diskret untuk membantu menentukan jumlah pompa bensin yang optimal dan ukuran tangki bahan bakar bersama yang digunakan oleh pompa. Model ini memerlukan simulasi mobil yang datang ke SPBU dan sumber daya stasiun: pompa dan tangki bahan bakar. Dalam latihan ini, kita akan fokus pada dua langkah berikut:

Langkah 1: Buat sebuah generator untuk mensimulasikan kedatangan mobil ke SPBU, meminta pompa, dan mengisi ulang tangki mobil.

Langkah 2: Buat sebuah generator untuk memeriksa level tangki dan meminta tangki pengisian ulang saat diperlukan. Selain itu, perilaku tangki pengisian ulang perlu dimodelkan.

Pada latihan berikutnya, Anda akan membuat lingkungan SimPy, menambahkan proses dan sumber daya, serta menjalankan simulasi.

Jumlah pompa bensin terbatas dan disimulasikan menggunakan sumber daya SimPy yang disimpan dalam variabel gas_station_pumps.

Latihan ini merupakan bagian dari kursus

Simulasi Peristiwa Diskret dengan Python

Lihat Kursus

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

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.")
Edit dan Jalankan Kode