问题标签 [simpy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4452 浏览

python - 需要帮助使用 SimPy 对火车系统进行建模

我需要在 SimPy 中建模火车系统(如地铁系统)的帮助,问题是我的“模拟”老师要我使用 Python + SimPy,而我不知道如何使用它,一周后阅读了关于SimPy 我设法理解了银行的例子,这很容易,但现在我仍然不知道如何建模老师给我的问题......

问题很大而且很广泛,但我只需要一点帮助,而不是完成整个项目,所以,如果有人可以提供帮助,我将不胜感激。

可以帮助我入门的减少问题是这样的:

假设您有 3 个车站(A、B、C)相隔一段距离(假设 100m),我有 2 列火车,一列在 A 上,一列在 C 上(train1 从 A 到 C,tran2 从 C 到 A)在哪里每列火车都有一个最大速度(假设两者都为 50m/s)和加速度(假设为 5m/s^2 和 -5m/s^2 用于制动),他们所要做的就是在每个车站停下几个秒(假设是 24 秒)并继续到下一个车站,当他们到达终点时,他们会等待额外的 20 秒(换轨),然后重新开始。

车站有乘客限制(他们不需要模拟)唯一的事情是每个车站都有随机数量的乘客,当火车到达时,一些人起床,另一些人下来......

所以,基本上我需要一个小模型的火车和这三个车站的车站......如果有人可以帮助我......

真正的问题有 22 个车站、2 个额外的换道车站、随机等待时间、42 列不同最高速度和容量的列车、根据车站和一天中的时间产生不同数量的乘客等等……所有这些东西我以后可以管理,但是火车站系统的建模逻辑我好像搞不明白……谢谢大家的帮助!

0 投票
1 回答
1427 浏览

python - 如何在不等待 SimPy 的情况下定期生成事件?

我正在学习 SimPy。目前我需要定期调用一个方法,直到模拟结束。

我写的像

由于 中的陈述while True:,它应该产生target.do()每 1.0 个时间单位。因此输出应该是:

但实际上,它target.do()每 6.0 个时间单位产生一次(yield保持等待直到target.do()完成):

我想知道如何将目标函数定期生成到计划中,而无需等到它完成执行?

谢谢!……

0 投票
1 回答
171 浏览

python - 多个实例的故障/修复的简单优先级

我一直在尝试 Simpy 手册中的总线故障示例,我真的很难理解为什么当我创建多个总线实例时,最后一个实例似乎在第一次修复后得到“顺序”。我已经修改了手册中的示例代码,略低于 initialize() 语句,以创建两个 Bus 实例(Bus1 和 Bus2)。这是我的代码:

上面给出了以下输出:

现在,问题是:在 t=600 点,为什么 1 号巴士在 2 号巴士发生故障之前就修好了?我原以为两辆巴士都会发生故障并以“锁定步骤”进行维修。此外,如果我创建四个总线,前三个失败并在“锁定步骤”中得到修复,如下所示;但是,在第一次维修后,4 号巴士在 20 点前下车。我无法弄清楚为什么会发生这种情况,并且希望任何人都可以提供任何见解。它总是发生在最后一个实例上。

谢谢,西摩

0 投票
1 回答
165 浏览

python - Getting signalparam of Event in simpy

I am using SimPy for a time-based simulation.

I have a Messager process which listens for a specific event, and returns the parameters of that event when it occurs:

this works fine. However, in reality there is more than one Event which should be handled by the Messager, and I want the Messager to return the signalparam for the causative Event in a list of events:

how do I access the signalparam of the Event which has occurred?

0 投票
1 回答
370 浏览

python - Python with SimPy on Eclipse 安装错误(Windows 7)

我在 Eclipse 中使用 PyDev 已经有一段时间了,没有任何问题。今天我在我的 Python 中安装了 SimPy,我认为它安装正常,这意味着在空闲命令中,例如:

工作正常。

然后我尝试再次配置 PyDev,以便可以将 SimPy 与 eclipse 一起使用。在 Eclipse 中,我选择了 Windows->Preferences->PyDev->Interpreter – Python。然后是新的,命名为 Python 2.7 并添加 C:\Python27\python.exe 作为解释器可执行文件。这就是我过去所做的并且工作得很好。

但是现在我收到一条错误消息“在解释器上获取信息时出错”。从 ErrorLog 我得到:尝试创建解释器信息时标准输出中没有输出。错误输出包含:ImportError: No module named site

在我的家庭变量中,我有:

PYTHONHOME -> C:\Python27

PYTHONPATH -> C:\Python27\Lib;C:\Python27\Lib;C:\Python27\SimPy

谁能告诉我出了什么问题?我的系统是Windows 7。谢谢!

0 投票
2 回答
3526 浏览

python - python (SimPy) 生成遵循 erlang 分布的随机数

我正在使用 Python(主要是 SimPy 包,但它与我认为的问题无关),对一些系统进行建模并运行模拟。为此,我需要生成遵循分布的随机数。到目前为止,通过导入随机数(例如从随机导入 *)并使用 expovariate 或 normalvariate 方法,我已经完成了一些分布,如指数和正态分布。但是,我找不到任何随机产生遵循 Erlang 分布的数字的方法。所以:

  1. 有没有我忽略的方法?
  2. 我必须导入其他库吗?
  3. 我可以做一些解决方法吗?(认为​​我可以使用指数分布来产生随机的“Erlang”数字,但我不确定如何。一段代码可能对我有帮助。

先感谢您!

0 投票
1 回答
331 浏览

python - Python SimPy:如何拆分或复制客户?

这是我试图在 SimPy 中实现的:

客户首先进入服务器 A 服务 5 分钟。然后每个客户分成两个,一个去Server B服务3分钟,一个去Server C服务2分钟。

我编写了以下代码,但根据输出似乎无法正常工作。另外我不确定我使用复制功能的方式是否正确,因为我想拆分每个离开服务器 A 的客户,但我觉得我的代码可能只适用于第一个客户。

任何帮助,将不胜感激。

输出:

0 投票
1 回答
597 浏览

python - 同时发生多次的简单事件

我正在使用Simpy 模拟器的SimEvent类来定义一些事件(比如a,b,c)。现在我有一个等待事件a、bc的进程,如下所示。

一旦发生这些事件中的任何一个,该过程将被重新激活。在我的情况下,事件可以发生多次。即两个或多个进程可以在同一仿真时间调用a.signal() 。如果,假设事件a发生 3 次,我如何获得该信息?eventsFired数组是否重复了相同的事件?

0 投票
1 回答
93 浏览

python - 无法在 python 中发现 nameError

这是我的代码:

我想要做的是打印出目的地在其名称不存在时无法到达,但我仍然遇到通常的python错误:

0 投票
1 回答
94 浏览

python - How to enable interaction between object in different modules

I am using SimPy, and I try to simulate a network.

This is my main module:

I want an object of class message, which is activated by an object of class node, to interrrupt

an object of class Network (topology).

But I'm getting an error:

And I don't know how to make an object global. And if I type topology in python shell then it shows me object topology, so why can't message see it?