我正在寻找以下问题的最佳解决方案。
我有3名初级医务人员(MO),只有1名顾问。诊所从0800 HRS开始;总共有12名患者被发现;理想情况下,最后一名患者应该在1100 HRS开始预约。此外,所有3名MO必须在0800 HRS时开始每人看1名患者。
必须按以下顺序查看每位患者:首先是医务人员(MO),然后是顾问。患者可能会在医务人员看到和被顾问看到之间经历等待时间(T)。
目标是减少平均等待时间(T)。那么我们应该如何安排诊所?这个问题也在附表中说明。
我怀疑这种情况可以被视为流水车间调度问题 - 所有建议的解决方案都将受到高度赞赏。 enter image description here
非常感谢!
答案 0 :(得分:1)
这看起来像是作业车间调度的一种形式(因此,当扩展时,最佳性将很难,因为它是NP完全/硬)。您基本上将每项工作(= 1名患者预约)分配给一台机器(= 1名医务人员)。最重要的是,您有工作依赖性(因为同一天患者的2次约会必须按照特定顺序)。
典型的方法是构造启发式,然后是本地搜索(例如禁忌搜索)。有很多解决方案可以帮助您解决这个问题。例如,在Java中,OptaPlanner有两个与此类似的示例:Project Job Scheduling和Nurse Rostering。