LoslegenKostenlos loslegen

Zahlungsschlangen managen

Ein Modegeschäft ist zu Stoßzeiten sehr stark frequentiert, sodass sich oft Schlangen an den Kassen bilden. Derzeit gibt es nur eine Kasse. Du sollst eine Kosten-Nutzen-Analyse durchführen, um zu bestimmen, wie viele Kassen nötig wären, um die Wartezeiten so weit wie möglich zu reduzieren und damit die Profitabilität zu steigern.

Du hast dich entschieden, ein ereignisdiskretes Modell zu bauen. Du weißt:

  • Im Durchschnitt kommt während der Stoßzeiten alle 15 Sekunden ein neuer Kunde zur Schlange hinzu;
  • Kunden bringen normalerweise mehrere Artikel mit, typischerweise zwischen 1 und 20; und
  • Das Scannen eines Artikels an der Kasse dauert im Mittel 3 Sekunden, und die Bezahlung dauert in der Regel weitere 20 Sekunden.

Das Argument counter speichert die SimPy-Ressource, und das Argument customer_num verfolgt die Anzahl der Kunden.

Lass uns das Modell ausführen und berechnen, wie lange es dauert, 30 Kunden mit unterschiedlicher Anzahl an Kassen zu bedienen.

Diese Übung ist Teil des Kurses

Diskrete-Ereignis-Simulation mit Python

Kurs anzeigen

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

def customer(env, customer_num, counter):

    num_items = random.randint(1.0, 20)
    print(f"Time: {env.now:7.4f} sec | Customer {customer_num:02d} > Joining the queue with {num_items:02d} items!")

    # Open the resource counter request
    with counter.____() as request:

        yield request
        print(f"Time: {env.now:7.4f} sec | Customer {customer_num:02d} > Got to cashier!")
        time_counter = TIME_PAY + random.randint(1.0, 20) * TIME_SCAN_PER_ITEM

        # Yield the processing time
        yield env.____(time_counter)
        print(f"Time: {env.now:7.4f} sec | Customer {customer_num:02d} > Finished ")

env = simpy.Environment()

# Create resource
counter = simpy.Resource(env, capacity=____)
env.process(source(env, NEW_CUSTOMERS, INTERVAL_CUSTOMERS, counter))
env.run()
Code bearbeiten und ausführen