simpy

基于流程的离散事件仿真框架(Python实现)。适用于构建包含流程、队列、资源及时间驱动事件的系统仿真,例如制造系统、服务运营、网络流量、物流管理,或任何实体随时间推移与共享资源交互的系统场景。

安装

热度:9

下载并解压到你的 skills 目录

复制命令,发送给 OpenClaw 自动安装:

下载并安装这个技能 https://openskills.cc/api/download?slug=k-dense-ai-scientific-skills-simpy&locale=zh&source=copy

SimPy - Python 离散事件仿真框架

技能概述


SimPy 是一个基于 Python 标准库的离散事件仿真框架,用于建模实体(客户、车辆、数据包等)在时间维度上与其他实体交互并竞争共享资源(服务器、机器、带宽等)的复杂系统。

适用场景

1. 制造与服务系统建模


适用于生产线调度、机器利用率分析、库存管理、医院急诊室患者流动、呼叫中心排队、零售收银台等需要模拟实体排队、等待、服务过程的场景。

2. 网络与通信系统仿真


适用于网络数据包路由、带宽分配策略、延迟分析、流量控制等需要模拟网络节点间竞争和资源分配的场景。

3. 容量规划与系统验证


适用于确定最优资源数量以满足性能指标、评估不同配置方案、测试系统设计在实施前的行为表现等需要预测和分析的场景。

核心功能

1. 进程建模与事件调度


使用 Python 生成器函数定义进程,通过 yield 语句实现事件驱动的暂停和恢复,支持多种事件类型(时间延迟、资源请求、自定义事件)以及并行任务协调(AllOf/AnyOf)。

2. 共享资源管理


提供多种资源类型用于模拟现实约束:Resource(有限容量如服务器)、PriorityResource(优先级排队)、PreemptiveResource(高优先级抢占)、Container(散装材料如燃料)、Store(对象存储)以及 FilterStore/PriorityStore(选择性检索)。

3. 监控与数据收集


内置资源使用追踪、状态变量记录、事件追踪等功能,支持统计数据自动计算和 CSV 格式导出,可配合实时环境(RealtimeEnvironment)实现与墙钟时间同步的硬件在环仿真。

常见问题

SimPy 是什么?适合用来做什么?


SimPy 是一个基于 Python 的离散事件仿真框架。它适合用于建模系统中实体随时间与其他实体交互并竞争共享资源的场景,如制造系统、服务运营、网络流量、物流运输等。与传统连续仿真不同,SimPy 专注于事件发生时间不规则的离散系统。

如何使用 SimPy 建模一个排队系统?


使用 simpy.Resource 定义有限容量的资源(如服务器),创建进程函数用 with resource.request() as req: 请求资源,服务完成后自动释放。可以结合 env.timeout() 模拟服务时间,并通过监控工具收集等待时间、利用率等统计数据。

SimPy 适合哪些应用场景?


典型场景包括:制造系统的生产流程和机器调度、医疗系统的急诊室患者流动、电信系统的网络流量和带宽分配、交通系统的物流和车辆路由、服务运营的呼叫中心和收银台排队、计算机系统的 CPU 调度和内存管理。SimPy 不适合固定时间步长的连续仿真或没有资源共享的独立进程模拟。