工作轮班安排与特定代理的休息时间

Work shift scheduling with break times for specific agents

我正在为生产线构建仿真模型。每天有两个班次(早班和夜班,各 12 小时)。在每个班次内,工人被分成 4 组,每组在交错的时间休息(例如,4 名工人在早班,第一名工人在上午 9 点休息,第二名在上午 10 点休息,等等)。这些工人还会在轮班期间随机休息。

不确定哪种方法可行:

  1. 在代理中创建单独的时间表并让它根据时间表更改状态?
  2. 对整个资源池使用一个共同的时间表,但是否可以在休息时间选择哪个代理去休息?还是随机挑选代理人?因为我担心的是我需要代理人以错开的间隔休息一下。

或者我应该用不同的方法生成它吗?

问得好!

选项 2) 如果您使用资源池,您将无法选择特定代理,因为会为整个资源池创建班次和休息时间。

您可以做的是使用多个计划来定义资源池的容量

这可以帮助你人为地定义交错。资源中断的性质。

更多详细信息请参阅帮助 - https://anylogic.help/library-reference-guides/process-modeling-library/resourcepool.html

我相信这已经回答了您的问题,但这是我对另一个选项的注释。

选项 1) 如果您需要更高级的灵活性和对休息时间的控制,并且您确实拥有所需的 Java 技能(和时间!),您可以创建自定义代码来控制何时发送代理人休息时间以及何时发送 return.您可以在代理中使用 StateCharts 来构建此逻辑。但这将与资源池不兼容,因为资源池将忽略池内代理的状态,它会占用正在休息的单位...

所以在这种情况下,您的尺寸延迟和释放也将是自定义的。

这是一项繁重的工作,只有在您有时间、有技能并且需要一定程度的灵活性和资源库无法提供的自定义时才应该尝试。