🔬

simpy

Sicher ⚙️ Externe Befehle🌐 Netzwerkzugriff📁 Dateisystemzugriff

Diskrete-Ereignissimulationen mit SimPy erstellen

Auch verfügbar von: davila7

Mit SimPy können Sie komplexe Systeme mit Prozessen, Warteschlangen und gemeinsam genutzten Ressourcen modellieren. Simulieren Sie Fertigungslinien, Serviceabläufe, Netzwerkverkehr und Logistik, um die Leistung vor der Implementierung zu optimieren.

Unterstützt: Claude Codex Code(CC)
🥈 77 Silber
1

Die Skill-ZIP herunterladen

2

In Claude hochladen

Gehe zu Einstellungen → Fähigkeiten → Skills → Skill hochladen

3

Einschalten und loslegen

Teste es

Verwendung von "simpy". Create a SimPy simulation of customers arriving at a bank with 2 tellers. Customers arrive every 3-5 minutes and service takes 5-8 minutes. Run for 8 hours and show average wait time.

Erwartetes Ergebnis:

  • Simulationsergebnisse: 8-stündiger Bankbetrieb
  • Bediente Kunden insgesamt: 147
  • Durchschnittliche Wartezeit: 4,2 Minuten
  • Maximale Wartezeit: 18,7 Minuten
  • Schalterauslastung: 87%
  • Warteschlangenlänge erreichte maximum 12 Kunden etwa zur Stunde 6

Verwendung von "simpy". Build a SimPy model of a 3-stage manufacturing line where parts go through cutting (10 min), assembly (15 min), and inspection (5 min). Each stage has 1 machine. Analyze throughput.

Erwartetes Ergebnis:

  • Analyseergebnisse der Fertigungslinie:
  • Fertiggestellte Teile: 23 über 8-Stunden-Schicht
  • Stationsauslastung: Schneiden 96%, Montage 72%, Inspektion 36%
  • Engpass identifiziert: Schneidestation
  • Durchschnittliche Zykluszeit pro Teil: 32 Minuten
  • Vorschlag: Zweite Schneidemaschine hinzufügen, um Durchsatz um 35% zu steigern

Verwendung von "simpy". Model a cloud data center with 10 servers handling 3 types of jobs.

Erwartetes Ergebnis:

  • Ergebnisse der Ressourcenzuweisung:
  • Kurze Jobs: 450 abgeschlossen, durchschnittl. Wartezeit 0,3 Min., Auslastung 45%
  • Mittlere Jobs: 180 abgeschlossen, durchschnittl. Wartezeit 2,1 Min., Auslastung 78%
  • Lange Jobs: 45 abgeschlossen, durchschnittl. Wartezeit 8,4 Min., Auslastung 92%
  • Optimale Zuweisung: 3 Server kurze, 4 mittlere, 3 lange Jobs
  • Aktuelle Überbereitstellung: 2 Server

Sicherheitsaudit

Sicher
v4 • 1/17/2026

Static analysis flagged 260 potential security issues, but evaluation confirms all are false positives. The 'external_commands' findings are markdown backticks used for code formatting, not shell execution. The 'weak cryptographic algorithm' flags refer to random.seed() for simulation reproducibility. No actual security risks exist in this legitimate SimPy discrete-event simulation skill.

9
Gescannte Dateien
3,202
Analysierte Zeilen
3
befunde
4
Gesamtzahl Audits
Auditiert von: claude Audit-Verlauf anzeigen →

Qualitätsbewertung

68
Architektur
100
Wartbarkeit
87
Inhalt
20
Community
100
Sicherheit
91
Spezifikationskonformität

Was du bauen kannst

Fertigungslinien optimieren

Produktionsworkflows modellieren, um Engpässe zu identifizieren, die Kapazität auszugleichen und Durchlaufzeiten zu minimieren.

Netzwerkverkehr simulieren

Paketweiterleitung, Bandbreitenzuweisung und Latenz unter verschiedenen Lastbedingungen analysieren.

Warteschlangensysteme entwerfen

Kundenfluss in Banken, Krankenhäusern oder Einzelhandel simulieren, um optimale Personalbesetzungsstufen zu ermitteln.

Probiere diese Prompts

Grundlegende Warteschlangensimulation
Create a SimPy simulation of customers arriving at a bank with 2 tellers. Customers arrive every 3-5 minutes and service takes 5-8 minutes. Run for 8 hours and show average wait time.
Fertigungslinie
Build a SimPy model of a 3-stage manufacturing line where parts go through cutting (10 min), assembly (15 min), and inspection (5 min). Each stage has 1 machine. Analyze throughput.
Netzwerk-Paket-Simulation
Simulate packets arriving at a router with 100 Mbps bandwidth. Packets are 1-5 KB and arrive at 50 packets per second. Show queue length and packet loss under peak load.
Ressourcenoptimierung
Model a cloud data center with 10 servers handling 3 types of jobs: short (1-5 min), medium (10-20 min), long (30-60 min). Jobs arrive randomly. Find optimal server allocation per job type.

Bewährte Verfahren

  • Verwenden Sie immer Context-Manager (with-Anweisung) bei der Anforderung von Ressourcen, um ordnungsgemäße Bereinigung zu gewährleisten und Deadlocks zu verhindern
  • Setzen Sie random.seed() für reproduzierbare Ergebnisse beim Vergleich verschiedener Simulationsszenarien
  • Überwachen und sammeln Sie Daten während der gesamten Simulation, nicht nur am Ende, um transientem Verhalten zu erfassen

Vermeiden

  • Das Vergessen von yield-Anweisungen in Prozessfunktionen führt dazu, dass Prozesse sofort ohne ordnungsgemäße Zeitsteuerung ausgeführt werden
  • Das Wiederverwenden von Ereignissen, die bereits ausgelöst wurden, führt zu Simulationsfehlern oder unerwartetem Verhalten
  • Die Verwendung blockierender Python-Operationen wie time.sleep() anstelle von env.timeout() unterbricht das Simulationszeitmodell

Häufig gestellte Fragen

Was ist der Unterschied zwischen Environment und RealtimeEnvironment?
Environment führt Simulationen so schnell wie möglich aus, während RealtimeEnvironment die Simulationszeit mit der Wanduhrzeit für Echtzeit- oder Hardware-in-the-Loop-Anwendungen synchronisiert.
Wie wähle ich den richtigen Ressourcentyp für meine Simulation?
Verwenden Sie Resource für grundlegende Kapazitätsgrenzen, PriorityResource für priorisierte Warteschlangen, Container für Schüttgüter wie Kraftstoff oder Wasser, und Store für Objektspeicherung mit FIFO oder Filterung.
Kann ich einen laufenden Prozess in SimPy unterbrechen?
Ja, verwenden Sie process.interrupt(), um einen pausierten Prozess gewalt resumed zu werden. Dies ist nützlich für die Modellierung von Preemption, Timeouts oder externen Abbruchereignissen.
Wie sammle ich benutzerdefinierte Statistiken während einer Simulation?
Verwenden Sie die ResourceMonitor-Klasse aus den bereitgestellten Skripten oder erstellen Sie benutzerdefinierte Monitore, indem Sie Ressourcenmethoden patchen und Ereignisse während der Simulationsausführung verfolgen.
Was ist der beste Weg, um parallele Prozesse zu modellieren, die eine Synchronisation benötigen?
Starten Sie mehrere Prozesse mit env.process() und verwenden Sie den yield-Operator mit dem &-Operator, um auf den Abschluss aller Prozesse zu warten, oder | für den Abschluss eines beliebigen Prozesses.
Wie kann ich Simulationsergebnisse für externe Analysen exportieren?
Verwenden Sie die export_csv()-Methode in ResourceMonitor, um gesammelte Daten zu speichern, oder schreiben Sie benutzerdefinierte Exportfunktionen unter Verwendung der während der Simulation verfolgten Datenwörterbücher.