问题标签 [event-simulation]
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.
python - 为什么我的事件类型 7 删除了我的第 46 个客户放弃时间?
在这里您可以在事件类型中看到条目 [5,0, 46] 已被删除
大家好,我正在尝试编写一个算法,可以模拟将出租车打给乘客的过程。每个事件类型都有数字编码:
所以 ET == 1 只是出租车到达事件,
2:客户到达,
3:终止事件,
4:出租车放弃,
5:客户没有耐心,
7:只是出租车将客户带到目的地并与另一位客户重新匹配。
事件日历 (EC) 中的第 0 个条目是距离下一次出租车到达的时间,
事件日历中的第 1 个条目是距离下一个客户到达的时间,事件日历中的
第 2 个条目是终止时间。
EC 列将随着事件类型 (ET) 的变化而更新。
LT 只是出租车的列表:
- 第 0 个条目是状态:“0”是空闲,“1”是忙
- 第一个和第二个条目是所述到达出租车的 x 和 y 坐标
- 第三个条目是该出租车的 ID
同样适用于 LC,但第 3 和第 4 项表示客户想去的目的地。
当客户到达时,要么他/她立即得到匹配,要么我为他们分配对应的耐心时间和如下所示的事件:[5,0,id_customer]。如果客户在他们的耐心时间到期之前没有匹配到司机,那么算法会在那之后删除他们。
我相信我的问题发生在ET == 7
. 因此,出租车 54 应该将 43 带到他/她的目的地,然后根据 min_distance 重新匹配到客户 45 或 46(我选择欧几里德距离和 min_distance 为任意值)。无论哪一个匹配,算法都会删除客户的耐心时间,这是一个[5,0,45]
或[5,0,46]
(但不是两个,因为如果你查看出租车列表,只有一辆出租车,两者都不能匹配到一辆出租车)。
抱歉,这篇文章很长,如果没有上述所有细节,我无法解释。谢谢阅读
python - SimPy 和 PyQt 交互
我一直在寻求让 PyQt 和 SimPy 相互“交谈”。例如,在下面的代码中,我有一个带有单个标签的 PyQt 小部件,用于显示 SimPy 环境时间。我希望这个标签随着模拟的进行而更新(我试图用这个simpy_generator
函数来展示它——小部件中的标签被更新,SimPy 超时一个单位时间,并且这种模式重复)。
但是,我对如何使它起作用感到非常困惑。我知道 Qt 需要管理它的事件队列,并且更新通常会通过一些QTimer
发出信号来触发它链接到的某个插槽的运行(在这种情况下是Window
'方法)来完成。update
但这似乎与 SimPy 自己的事件队列不兼容(或者更确切地说,我太无知了,无法理解它们应该如何交互);生成器需要作为一个进程添加到环境中,然后环境设置为运行直到完成(参见代码的注释部分)。
谁能告诉我如何才能做到这一点?
javascript - 在 Vuejs 的 TextBox/Input 中更改或输入值
我目前正在测试网站作为我的工作。我的行为就像使用该网站的最终用户。由于此作业重复执行一组操作。所以我编写了自己的 Chrome 扩展程序。我的扩展使用 Vanilla JS(没有 jQuery 或任何第三方库)。一切正常,直到我收到使用 Vuejs 的客户站点。我对 Vuejs 不太熟悉(我曾经使用过 Vanilla JS、jQuery、Angular)。
我使用 Vanilla JS 来模拟点击 Vuejs 按钮。可以的,没有问题。但不是文本框。我尝试更改值、textContent、innerText、innerHtml,它在文本框中显示字符串,但是当我提交时,Vuejs 通知填充文本框(这意味着文本框上没有字符串)。我也尝试更改该值,然后在该文本框上单击 dispatchEvent click、keyup、keydown、keypress,没有任何反应。
那么有 Vuejs 专家吗?请帮我找到在文本框上模拟文本输入的方法。或者给我关键词研究。
我很感激。感谢社区
python - 你能在 Python 上使用 SimPy 做一个闭环系统吗?
我正在尝试模拟一个可以驾驶汽车的车库。然后随着时间的推移,汽车需要一些维修,它们变得不可用。修好汽车后,它会回到车库。
我想知道您是否可以为这样的系统建模,让您可以将相同的汽车循环回车库?此外,有兴趣跟踪汽车的不可用性......
java - 如何在 Java 中运行带有仿真包的示例?
需要帮助来运行 JavaSim 模拟包中的示例。
https://github.com/nmcl/JavaSim
示例 Main.java 位于:
examples/src/main/java/org/javasim/examples/basic
请注意,我也在 Eclipse 中执行过:
右键单击项目文件夹-> 属性选择“Java 构建路径”单击顶部的“源”选项卡单击右侧面板上的“添加文件夹”选择的文件夹示例并应用
python - 虽然循环不断迭代在 Simpy 中第一次迭代时开始的作业?
我正在与 simpy 一起使用容器来安排作业。我面临一个问题,即只有那些在第一次迭代时开始的工作才会继续迭代。即前 3 个工作不断迭代。不让第 4 份工作进入这个过程。其次我还想知道所有作业的总执行时间?如果有人可以帮助我,我将不胜感激。
r - 跨多个资源超时?煨 R - DES
我希望能找到解决 simmer 包问题的最佳方法。
在急诊科,患者决定入院,我们从定义的分布中抽取他们的住院时间,并将他们放在普通病床上(如果有)或紧急病床,直到有普通病床可用。
一些患者可能在整个住院期间都在急诊床上。因此,解决这个问题的最佳方法是什么?
如果我占用一张急救床,我将不得不反复检查是否有一张普通床可用,同时还要检查他们的 LOS 是否用完。
我感觉到有什么事情发生了,短暂的超时和回滚逻辑是正确的方法,但我需要确保如果患者在急诊床上度过 2 天,这是从他们在普通床上的总逗留时间中得出的.
要涵盖的示例场景:
患者 1 - 预计 LOS 10 天第 1-3 天在急诊床上,然后是第 4-10 天在普通床上,然后在第 10 天出院。
患者 2 - 预计 LOS 4 天 没有常规床位可用,患者在第 4 天直接进入出院轨迹。
患者 3 - 预计 LOS 5 天直接入住普通床,因为有一张可用的床。在第 5 天进展到出院轨迹。
任何帮助,将不胜感激。
python - 如何在 Simpy 模拟中结束进程
我是 SimPy 的新手,正在努力完成以下工作。模拟流程,每个流程都有不同的时间延迟。第一个过程完成后,我将中断我捕获的其他过程。但是一旦在 catch 块中,所有这些进程都会再次恢复,并且环境时钟会继续运行,直到所有这些进程都完成。我希望模拟在第一个进程完成后立即停止,然后更新其他进程的剩余时间并基本上停止一切,以便 env.now 时间在第一个进程完成时。
示例代码
类 Resource 有一个 start 和 run 方法,具有以下内容: 还假设每个资源在实例化时都有一个处理时间:每个资源还具有对其他资源的引用,为了保持简短,没有显示所有代码。
当前发生的情况是完成了最短的资源进程。对所有其他资源调用中断,并且正确更新 timeToProcess。但在此之后,环境运行以完成所有资源进程,并且 env.now 更改超出了预期的第一站。
我尝试了 env.exit() 但没有成功。simpy 中是否有任何方法可以立即停止模拟,无论安排什么进程。
问候