Ich wollte meine Reihe von SimPy-Beispielen für die Lieferketten- und Fertigungssimulation erweitern. In diesem Artikel zeige ich, wie Sie mit SimPy einen Parkplatz in Python modellieren können. SimPy ist eine Simulationsmodellierungsbibliothek für diskrete Ereignisse in Python. Weitere SimPy-Beispiele und auch R-basierte Parkplatz -Simmer -Simulationsmodelle wurden bereits in der Vergangenheit auf diesem Blog geteilt. Hier sind einige Beispiele:
- Link : Parkplatzsimulator mit Simmer in R
- Link : LKW-Transportsimulationsanimation in Python
- Link : Thungela-Fußgänger- und Verkehrssimulationsstudie für eine neue Parkanlage
Das hier besprochene Modell könnte auch zur Modellierung anderer ähnlicher Systeme verwendet werden, beispielsweise eines Prozesspufferspeichers mit minimalen Verweilzeiten (Kühlprozesse, Härteprozesse usw.) und seiner Fachauslastung.
Nutzen von Parkplatzsimulationen
Parkplatzsimulationsmodelle sind unschätzbare Werkzeuge im Supply Chain Management und bieten eine Vielzahl von Vorteilen. Diese Modelle erleichtern die effiziente Zuteilung von Ressourcen wie Raum und Arbeitskraft und optimieren deren Nutzung. Sie helfen bei der Kapazitätsplanung und ermöglichen fundierte Entscheidungen hinsichtlich der Erweiterung oder Reduzierung von Anlagen. Die Analyse des Verkehrsflusses verbessert die Gesamtbewegung von Fahrzeugen innerhalb der Vertriebszentren und reduziert so Staus und Wartezeiten. Ein effizientes Warteschlangenmanagement stellt sicher, dass die Waren zeitnah geladen und entladen werden.
Darüber hinaus helfen Parkplatzsimulationen dabei, Möglichkeiten zur Kostensenkung zu identifizieren, indem Leerlaufzeiten minimiert und die betriebliche Effizienz gesteigert werden. Die Leistungsmessung über verschiedene Supply-Chain-Komponenten hinweg unterstützt Benchmarking und Zielsetzung. Diese Modelle ermöglichen die Untersuchung von „Was-wäre-wenn“-Szenarien und ermöglichen das Testen und Bewerten von Layout-, Personal- und Prozessänderungen. Sie tragen auch zur proaktiven Risikominderung bei, indem sie Engpässe und Schwachstellen im Parkplatzbetrieb identifizieren .
Darüber hinaus dienen sie als wertvolle Hilfsmittel für die Schulung und Kompetenzentwicklung der Mitarbeiter und bieten eine kontrollierte Umgebung zum Erlernen von Park- und Ladevorgängen. Parkplatzsimulationen unterstützen Nachhaltigkeitsinitiativen, optimieren Routen und reduzieren die Umweltbelastung. Diese Simulationen generieren datengesteuerte Erkenntnisse, die als Grundlage für die strategische Entscheidungsfindung dienen, und sie fördern eine Kultur der kontinuierlichen Verbesserung, indem sie das Testen neuer Strategien zur kontinuierlichen Optimierung erleichtern. Die Integration von Parkplatzsimulationen in das Lieferkettenmanagement kann zu Kosteneinsparungen, Effizienzsteigerungen und allgemeinen Leistungsverbesserungen in der Lieferkette führen.
Ein SimPy-Parkplatzsimulationsmodell
Unten finden Sie ein Python-Beispiel, das ebenfalls auf Github verfügbar ist und simpy für die Modellierung eines Parkplatzes verwendet . Der Parkplatz wird als Container mit definierter Kapazität modelliert. Die Kapazität modelliert die Anzahl der Parkplätze auf dem Grundstück.
In der Parkplatzklasse wird ein SimPy-Prozess zur Modellierung der Autoankünfte implementiert. Dieser Vorgang wird für eine definierte Anzahl an Fahrzeugankünften durchgeführt. Jedes Auto kommt nach einer zufällig verteilten Zwischenankunftszeit an. Anschließend belegt es einen verfügbaren Slot für eine zufällig verteilte Zeitspanne. Danach wird der Parkplatz freigegeben.
import simpy
import random
# modeling framework
class ParkingLot:
env :simpy.Environment
capacity :int
spots :simpy.resources.container.Container
def __init__(self,
env :simpy.Environment,
capacity :int
):
""" constructor """
self.env = env
self.capacity = capacity
self.spots = simpy.resources.container.Container(env, capacity, init=capacity)
def car_arrival(self,
car_id :int
) -> None:
"""
implement simpy process;
models car arrivals in the parking lot, occupying a slot for a randomly distributed duration
"""
print(f"Car {car_id} arrives at {self.env.now}")
yield self.spots.get(1)
print(f"Car {car_id} parks at {self.env.now}")
yield self.env.timeout(random.randint(1, 5))
print(f"Car {car_id} leaves at {self.env.now}")
yield self.spots.put(1)
def main(self,
cararrivals :int,
interarrivaltime_min :int,
interarrivaltime_max :int
) -> None:
""" implements simpy process for main parking lot simulation run """
for car in range(1, cararrivals+1):
t = random.randint(interarrivaltime_min, interarrivaltime_max)
yield self.env.timeout(t)
self.env.process(self.car_arrival(car))
# setup model
env = simpy.Environment()
parking_lot = ParkingLot(env, capacity= 10)
# setup simulation run itself
env.process(parking_lot.main(cararrivals= 10, interarrivaltime_min= 1, interarrivaltime_max= 5))
# run the model
env.run()
Wenn Sie dieses Modell für 10 ankommende Autos auf einem Parkplatz mit 10 Stellplätzen ausführen, wird die folgende Ausgabe generiert:
Auto 2 kommt um 4 an
Auto 2 parkt um 4 Uhr
Auto 1 kommt bei 2 an
Auto 1 parkt bei 2
Auto 1 fährt um 3 Uhr ab
Wagen 3 kommt um 7 Uhr an
Auto 3 parkt um 7 Uhr
Wagen 4 kommt um 8 Uhr an
Auto 4 parkt um 8 Uhr
Auto 2 fährt um 9 Uhr ab
Auto 5 kommt um 9 Uhr an
Auto 5 parkt um 9 Uhr
Auto 4 fährt um 10 Uhr ab
Wagen 6 kommt um 11 Uhr an
Auto Nr. 6 parkt um 11 Uhr
Wagen 3 fährt um 12 Uhr ab
Wagen 7 kommt um 12 Uhr an
Auto 7 parkt um 12 Uhr
Wagen 5 fährt um 13 Uhr ab
Wagen 6 fährt um 13 Uhr ab
Wagen 8 kommt um 16 Uhr an
Auto 8 parkt um 16 Uhr
Wagen 7 fährt um 17 Uhr ab
Wagen 8 fährt um 17 Uhr ab
Wagen 9 kommt um 20 Uhr an
Auto Nr. 9 parkt um 20 Uhr
Wagen 10 kommt um 22 Uhr an
Auto 10 parkt um 22 Uhr
Wagen 10 fährt um 24 Uhr ab
Wagen 9 fährt um 25 Uhr ab
In kommenden Tutorials werde ich zeigen, wie man benutzerdefinierte Statistiken in dieses Simulationsmodell integriert und schließlich, wie man es animiert.
Abschließende Bemerkungen zur SimPy-Parkplatzsimulationsmodellierung
In diesem Artikel habe ich mit SimPy in Python ein einfaches Basismodell für einen Parkplatz entwickelt. Ich werde dieses Modell in kommenden Tutorials verwenden, um Autoankunftsprozesse und die Auslastung der Parkplatzkapazität im Zeitverlauf zu analysieren, und ich werde die Slotauslastung im Zeitverlauf animieren. Darüber hinaus werde ich das Modell detailliert beschreiben und Parkplatzzonen sowie Strategien zur Minimierung der Fahrtwege implementieren.
Wenn Sie mehr über SimPy und die Simulation diskreter Ereignisse im Allgemeinen erfahren möchten, können Sie die folgenden SCDA-Blogbeiträge und -Beiträge lesen:
- Link : SimPy-Simulation für Binnenschifftransport
- Link : Montageliniensimulation und Linienausgleich
- Link : End-to-End-Simulation der Geflügel-Lieferkette
Wirtschaftsingenieur mit Interesse an Optimierung, Simulation und mathematischer Modellierung in R, SQL, VBA und Python
Leave a Reply