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
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.")