问题标签 [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.

0 投票
2 回答
526 浏览

python - 离散事件建模 - Simpy - 如何建模复杂的依赖关系?

我是 Simpy 的新手,在弄清楚如何为具有复杂依赖关系的进程调度程序建模时遇到了麻烦。

我的问题的高级摘要

  • 我有一个仓库,通过入口接收装有物品的盒子。这些盒子被放入队列中等待处理。
  • 每个箱子都有一个目的地房间,必须使用传送带运送到那里。传送带服务多个房间。
  • 仅当传送带和目的地房间都可用时,操作员查看队列中的箱子并将箱子放在适当的传送带上。操作员按顺序发送盒子,但跳过无法处理的盒子。
  • 在房间内打开盒子后,需要一定的时间来存放物品。在此期间,房间无法接收其他盒子。
  • 物品入库后,空箱通过其进来的同一条传送带被送到仓库出口。
  • 操作员随时了解哪些传送带和房间是空闲的。

我的问题是如何建模这个运算符。到目前为止,我还没有在 Simpy 中找到一种优雅的方式来做到这一点。我本质上想要一个只有在以下三个条件成立时才唤醒的过程:a)一个房间是空闲的;b) 这个房间的队列中有一个盒子,并且 c) 去房间的皮带是免费的。

非常感谢任何想法、建议或指向现有示例的指针。谢谢!

0 投票
1 回答
48 浏览

r - R simmer package - 如何处理零件拆卸/重新组装?

我想编写一个模拟代码,其中所有到达的项目(A、B、C、...)首先被分解成两部分。Item.subpart1 直接经历 OPERATION1,Item.subpart2 在被 OPERATION2 处理之前被批量收集(大小 = 4)。处理后,我希望重新组装同一项目的所有部分,而不是与其他项目的部分混合(即,来自 A 的 subpart1 仅与来自 A 的 subpart2 一起使用)。

我尝试了并行任务来拆分子部分轨迹,还尝试以 4 的批次收集所有 Items.subparts2。

问题是:首先,我希望 CountSubparts2 增加到 4,然后在 OPERATION 2 之后减少到 0。这里,CountSubparts2 不断增加。其次,我找不到明确告诉 simmer 的方法:“重新组装 subpart1_A_processed 和 subpart2_A_processed。对 B、C 等做同样的事情。”

我错过了什么?

谢谢您的帮助 !

0 投票
1 回答
231 浏览

c - 如何在链表中按 CPU 时间对节点进行排序,因为它们被放在 CPU 调度模拟 C 程序(SJF)中的“队列”中?

以下是我的问题的两个相关功能,但请询问您是否需要任何其他功能来帮助我解决这个问题。该程序模拟具有指数到达时间、指数服务时间和 FCFS 调度规则的单个服务器队列。这是一项任务,我打算通过按 CPU_time 对队列列表进行排序来修改它以使用 SJF 调度。这是我对冒泡排序的尝试,但是当它运行时,它并没有进入 do-while 循环。在将链表添加到链表时对其进行排序的最佳方法是什么?

0 投票
1 回答
186 浏览

c - 如何解决 C 语言 CPU 调度模拟程序中的分段错误(核心转储)错误?

我对 C 非常陌生,并且在尝试运行以下代码(这是一个最初模拟 FCFS 调度算法的程序,但我不得不修改以模拟 SJF)时遇到分段错误,我不知道如何解决它. 这是一个任务,我要做输入:4 表示平均到达时间,1 表示平均服务时间,10000000 表示模拟长度,以及种子的任何整数。如果我只说模拟长度为 1000,那么它会起作用,但是是什么导致了 10000000 的这个错误?(顺便说一句,函数 puton_queue 是我添加大部分代码的地方,但如果您需要任何其他信息,请随时询问)。谢谢!

0 投票
1 回答
79 浏览

c - 为什么我的程序没有为 C 中的循环(量子 = 4)调度模拟程序准确计算平均响应时间?

对于我的任务,我们得到了一个程序,该程序将在 C 中模拟 FCFS 调度算法,我们将对其进行两次修改以模拟 SJF 和 RR(量子 4)并比较每个的平均响应时间。我已经完成了 SJF 版本,但我遇到了 RR 版本的问题。当我使用输入 4->1->10000000->5 运行时(这是我们为分配所做的),我的平均响应时间对于 RR 比其他的要大得多(这显然是不正确的)。有人可以帮我弄清楚如何在我的程序中准确计算 RR 模拟的平均响应时间吗?我已经包含了整个程序,所以它可以运行。

0 投票
1 回答
167 浏览

r - 按属性划分的 Simmer plot 资源使用情况

是否可以在 simmer 中按属性绘制资源使用情况?因此,例如在这个模拟中:

生成的图显示了性别随时间的变化,但不显示资源使用情况。plot.attributes 的文档说:

“属性”的 S3 方法不支持任何指标。它只是显示了整个模拟过程中所提供键的值的阶梯图(如果没有提供键,则显示所有收集的属性)。

目前有什么方法可以按属性绘制资源使用情况?

感谢您的任何建议。

0 投票
2 回答
86 浏览

simulation - 一个代理的并行活动

有没有办法让每个代理发生并行服务和/或延迟,并继续进行耗时最长的活动。例如,如果我有一个可以同时绘制和服务的代理,每个代理都需要具有不同处理时间的不同资源池,但是当花费时间最长的进程结束时,代理将继续前进。

0 投票
1 回答
91 浏览

simulation - Anylogic问题:一台机器上两个操作时间不同的操作员

我正在努力解决 Anylogic 中的模拟问题。

问题: 1.我想让2个在同一台机器上工作的操作员有不同的操作时间(例如,当一个零件到达机器时,worker1花费3分钟,worker2花费5分钟。)我试过资源池但是被扣押的 2 名工人总是在机器上花费相同的时间。

如何使用流程图块对这个问题进行建模?

0 投票
1 回答
186 浏览

r - 使用 R simmer 包的离散事件模拟 (DES)

我正在尝试用 R 学习 DES 来解决维护优化问题。但是,如果它实际上是一个很好的工具,我会感到非常困惑。

作为初步试验,我在这里发布了一个非常简单的问题,其中组件在状态 0 下运行,在状态 1 下失败,如图所示。故障和修复时间都呈指数分布,分别与相关比率 $\lambda$ 和 $\mu$。

我的目标是找出系统的不可用性,即系统在故障状态 (1) 上花费的时间,如图所示。

我用 simmer 设置模型如下(可重现):

任何人都可以帮助验证这种表示是否正确,我如何计算在这些状态中花费的时间?

一个部件故障和修复系统

0 投票
1 回答
99 浏览

simulation - 在 AnyLogic 中使用代理名称作为 selectOutput 的条件

我有一个具有两种代理类型的模拟。申请人和优先申请人。(优先申请者是通过拆分申请者来创建的。)有两种服务,普通发行和优先发行。我需要根据代理类型将代理定向到柜台。

选择输出

我尝试在 SelectOutput 条件下使用以下代码。在“如果条件为真”中,我使用了条件,

但这给了我 3 个错误。

错误信息

有没有办法解决这些错误?或者有没有其他方法可以实现这一目标?