考虑一个为不同类型的工作提供技术人员的组织。
每种工作类型在完成时间和技术人员数量上都有所不同。例如,1类工作需要2名技术人员和1小时才能完成,2类工作需要1名技术人员和30分钟才能完成。所有技术人员都随时待命(组织工作时间为09:00-18:00),除非分配了任何工作。
客户可以在线请求服务,并且应根据所选作业类型显示可用的时隙。
没有其他限制,如每个技术人员的最小位移或最大位移,并假设所有技术人员都同样熟练。
生成时隙的最佳方法是什么?
最佳答案
我认为您所描述的是Producer-Consumer Problem
的一个变体,其中您有由技术人员消耗的工作。
因为,正如你所说,所有的技术人员都有相同的技能,所以你并不需要为手头的工作找到最佳的技术人员。因此,要解决这个问题,你所需要的只是一批技术人员(你可以把它看作是一个线程池),而且每次有工作来了,你都会指派一名技术人员在先到先得的基础上完成这个工作。
如果没有可用的技术人员,则工作将排队,直到有技术人员可用。