问题标签 [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 投票
0 回答
215 浏览

python - 循环问题,创建路由表

我想为我的简单网络模拟器创建一个路由表。我需要自动创建路由表。我希望这张表看起来像这样:

因此,如果路由器引擎收到寻址到destinationInterface 的消息,它会将其发送到nextHop。我想要做的是:

但这不起作用。而且我真的很困惑我把 # 放在前面的行,因为无论有没有它们,这段代码的工作方式都不同。

0 投票
1 回答
1590 浏览

python-2.7 - 在 tkinter 中添加 GUI 到一个简单的模拟

我在我的简单模拟中实现一些 GUI 时遇到问题。问题是如何将最好用 Tkinter 制作的 GUI 添加到一个简单的项目中。赖特现在我什至在创建一个窗口时遇到了问题。我认为这是因为当模拟停止运行时我无法执行 Tkinter 代码。我知道这是一个非常普遍的问题,但我不知道如何开始。我想用 Tkinter 做的是为我的模拟绘制一个拓扑,也许能够更改一些参数,并从 GUI 运行它。

我在模拟开始时添加了部分,并创建了对象,整个东西大了十倍以上,所以我不知道我是否应该在这里添加它。

这是 mu GUI 的代码

它不应该做任何事情,但它甚至没有出现。

好的,也许这会有所帮助。我注意到当我同时导入 Tkinter 和 matplotlib 时会出现问题。所以也许 matplotlib 也在使用 tkinter?

0 投票
1 回答
678 浏览

python - Python+SimPy 保持进程计算时间

我想进行模拟,其中服务时间取决于某些功能的计算复杂度。

请求到达不应由于函数处理而停止。为了测试,我使用了利用 cpu 几秒钟的示例函数:

如何调用它来模拟服务,但不阻止新的服务请求到达。如果我调用这个函数,新的服务请求会在函数执行之后到达,而不是在规定的时间。

因此,在我的示例中,新数据包仅在前一个数据包离开后才到达。

我尝试使用multiprocessing,但我遇到了(Process类)命名冲突。我是 SimPy、并行编程和 Python 方面的新手。

0 投票
1 回答
495 浏览

python - 在 Simpy 中处理共享资源的子集

我在 Python 中使用 Simpy 离散事件模拟来模拟工厂。该类resource允许我模拟一次可以由有限且固定数量的进程使用的资源(例如,具有有限数量的燃料泵的加油站)。粗略地说:进程必须请求这些资源才能成为用户,并且一旦完成就必须释放它们(例如,车辆到达加油站,使用燃油泵,如果有的话,完成后离开) .

资源具有有限且固定数量的可以由进程请求的槽。如果所有插槽都被占用,请求者将被放入队列中。如果一个进程释放了一个槽,则下一个进程从队列中弹出并获得一个槽。

就我而言,我有一个必须使用某些共享机器的进程列表。每个进程都与允许使用的机器的固定子集相关联。如果这个子集对于每个进程都是相同的,那么使用内置方法很容易实现这个问题,但是我在这个问题的变化中遇到了麻烦。

我试图将每台可用机器作为一个resource容量为一个的个体(而不是一个resource容量等于可用机器总数的单个),并使用该any_of方法将每个进程分配给其相应的允许子集的第一台可用机器机器。不幸的是,它不起作用。

有没有一种简单或自然的方法来实现这一点?提前致谢!

0 投票
1 回答
1090 浏览

python - f 解决起点问题

我正在使用 fsolve 来求解非线性方程。我的问题是,根据起点,解决方案会发生变化,我不确定我发现的那些是最合理的。这是代码

我固定 x0 = 1 因为它似乎给出了更合理的值。但有时,我认为该方法不会收敛,并且结果值太大。

我该怎么做才能找到最佳解决方案?

非常感谢!

0 投票
1 回答
798 浏览

python - 为什么我需要 `yield env.timeout(0)` 才能在 simpy 中移交控制权?

我正在使用 simpy 进行机器人模拟,我开始使用两个称为 ping 和 pong 的球拍编写一个简单的乒乓球游戏。只有当我添加 ayield env.timeout(0)以让一个玩家为对方玩家提供轮到他的机会时,它才能正常工作。如果我跳过这个 noop(?),第一个球员一直抓住球。这是我的代码:

我的问题是为什么我需要env.timeout(0)? 我还想知道是否还有其他一些(更好的?)在两个进程之间移交控制权的策略?我也玩过,process.interrupt()但在我看来这有点矫枉过正。

0 投票
1 回答
276 浏览

python - 在 SimPy 进程中调用函数

我正在尝试使用 Python 和 SimPy 编写用于进程通信的程序。如果我将所有代码放在一个函数中并调用

一切运行完美。但是,如果我在 function_one() 中调用另一个函数,例如

function_two 永远不会被执行。如果我这样调用 function_two 将被执行

但是,function_one 的其余部分将随后执行,并且不会等待 function_two 执行。我显然不想把我所有的代码放在一个函数中,所以任何帮助都将不胜感激。

0 投票
2 回答
759 浏览

python - simpy 中的资源

有人可以让我开始一个简单的模拟吗?我是 simpy 新手,发现编码非常困难。这是场景:

作业在工厂中以不同的工作流程运行。工作流程定义了使用哪些机器。机器不一样。操作员需要运行多台机器——只要有工作,就让机器保持忙碌。

任何帮助表示赞赏。

0 投票
2 回答
1348 浏览

simulation - Simpy 3.0.4,设置资源优先级

我在 simpy 中遇到资源优先级问题。考虑以下代码:

较低的数字意味着较高的优先级,所以我应该得到 1,2,3,4,5。但相反,我得到了 3、1、2、4、5。所以第一个输出是错误的,然后是排序的!

在此先感谢您的帮助。

0 投票
3 回答
1949 浏览

python - 简单 3:Resources.Resource.request()/.release() 没有'with...as:'

我正在尝试将 SimPy 模拟添加到我正在处理的项目中,但我对版本 3 的发布/请求有些困惑。

我能够使用“with”块毫无问题地实现资源,但在我的情况下,我想在不使用“with”块的情况下请求/释放资源。

但是,我找不到使用 SimPy 3 的示例。我阅读了有关资源的文档/源代码,但仍然不能完全正确。有人可以解释如何正确地:

谢谢,很抱歉打扰。

PS:我打算使用 Resources.resource