|
【问题 002】任务分配问题
问题描述
某研究所的生产车间,接到一项生产任务,该单位有能力进行操作的员工有:A1、A2、…、An,他们单独完成此项任务所需时间分别是:B1、B2、…、Bn。任务可以分批操作完成,规定在每一批的任务分配中,上述员工至少要参加一次操作,才算完成任务的分批操作,并符合下列条件:
1、在操作中必须两人同时在场,操作时间以两人中单独完成时间最多的一位计算,计入工作量。
2、操作结束后必须留下一人把操作指令送交接替的操作人员,把他等待移交时间以此人单独完成的时间计算,计入工作量。
3、上述各项操作时间记的和为总工作量的工时数,任务要求总工作量的工时数,应尽可能地少。
例析:完成任务有四人,所需要的时间分别是1、2、5、8分钟;而如果两人同时在场,所需要的时间就是走得比较慢的那个人单独完成时所需的时间。问题是,如何设计一个方案,让这四人尽快完成任务。
设这四人分别为A、B、C、D。很明显,开始两人拿着操作指令,此时需要在那两人中的一个再把操作指令送交接替的人手中。送操作指令要化时间,所以要选一个比较快的。每次让最快的A和着另一个完成操作,然后A传递操作指令,再和下一位操作,最后所有人就都可以进行加工,完成批操作任务。
此操作方案就可以写成:(右边数字为完成此步骤所需时间)
A B → 2 (完成操作步骤所需时间)
A ← 1 (送操作指令时间)
A C → 5 (完成操作步骤所需时间)
A ← 1 (送操作指令时间)
A D → 8 (完成操作步骤所需时间)
完成批操作任务需2+1+5+1+8=17分钟。
但其实有更快的办法:
A B → 2 (完成操作步骤所需时间)
A ← 1 (送操作指令时间)
C D → 8 (完成操作步骤所需时间)
B ← 2 (送操作指令时间)
A B → 2 (完成操作步骤所需时间)
完成批操作任务共需2+1+8+2+2=15分钟。
解答要求,你的策略(模型)的实现用数学论证或以计算机编程,对你的结论都必须有解题报告和证明。
4<N<=20要求输出一种最佳方案和用时最省的时间
20<N<=100要求输出最佳方案总数和用时最省的时间
|