规划求解解决任务分配问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
规划求解解决任务分配问题
对于不少项目主管、生产主管来说,任务分配工作是日常工作中的一个重要环节,但是很多时候,他们在分配任务时仅仅凭借了经验和感觉,很少会有人采用科学的手段来合理分配任务,以达到人尽其责、物尽其用的目的。而事实上,使用Excel的规划求解工具,并不需要花费多少时间就可以将任务分配工作进行科学合理的规划安排,可以最大限度的利用现有的人力物力资源来提高完成工作任务的效率。
在实际工作中,任务分配问题主要研究如何将一些具体的任务分配给合适的人员或设备,使得完成总任务的开销最少。考量任务开销的标志通常有任务完成时间或完成任务所需的经济成本。
与物资调运问题类似,任务分配问题也存在着任务大于、等于或小于完成对象的情况,下面分三种情况分别介绍使用Excel规划求解来解决的方法。
等额任务分配
任务分配问题与物资调运问题有些相似,但任务分配问题有个特点,就是在同一个任务完成周期内,每个人(每台设备)只能进行一项任务,并且每一项任务也只能分配给某一个人(某一台机器),其中只存在一一对应的关系,而不存在同一个人完成多项任务、或者同一个任务分割成多个部分交给不同的人来完成的情况。这个一一对应条件是任务分配问题的逻辑基础。
某软件开发项目主管需要将某个项目中的5个独立模块的开发任务分配给5个程序员,每个程序员只能分配到1个任务。通过已有的项目开发经验和程序员对任务的评估,得到5个程序员各自完成所有模块所需时间的估算表,如图1-1所示:
图1-1 完成各软件模块所需的时间
如果单纯从谁效率高谁来做的角度出发来分配任务,那么程序员2和程序员4都最适合完成模块1,而程序员3和程序员5最适合完成模块3,但对于整个项目计划来说,需要同时考虑模块2、模块4的任务分配安排。因此,需要使用更为科学的统筹安排方法。
使用Excel规划求解工具来解决此任务分配问题的操作方法如下:
步骤1 根据题目需求,在原有题目条件的下方建立规划求解所需的公式模型,如图1-2所示:
图1-2 建立规划求解的模型
其中,B9:F13单元格区域用于记录实际的任务分配情况,可用数字0表示任务未分配,用数字1表示分配此任务。此区域将作为规划求解的可变单元格区域。
G列用于统计各程序员最终的任务分配情况,根据任务分配问题的特性,每个程序员最终只能分配到1个任务。在G9单元格内输入公式“=SUM(B9:F9)”,然后向下复制填充至G13单元格。
第14行用于统计各模块开发任务的最终人员安排情况,根据任务分配问题的特性,每个模块开发任务最终只能安排给1个程序员。在B14单元格内输入公式“=SUM(B9:B13)”,然后向右复制填充至F14单元格。
H列用于统计实际任务分配状态下,各程序员完成对应模块所需的时间,可在H9单元格内输入公式“=SUMPRODUCT(B2:F2,B9:F9)”,然后向下复制填充至H13单元格。
H14单元格用于累计H9:H13单元格中的时间,即完成所有5个模块开发任务所需的总时间,可在单元格中输入公式“=SUM(H9:H13)”,此单元格将作为规划求解的目标单元格。
步骤2 为了提高规划求解结果的可读性,可预先设置B9:F13单元格区域的数字格式。选中B9:F13区域,按
步骤3 选中H14单元格,单击菜单“工具”→“规划求解”,打开“规划求解参数”对话框,其中在“设置目标单元格”编辑框内选择H14单元格,然后在下方选择“最小值”选项。“可变单元格”编辑框内选择B9:F13单元格区域。
步骤4 再单击对话框中的“添加”按钮打开“添加约束”对话框进行约束条件的添加,本例中所包含的约束条件包括:
条件1:B9:F13为二进制数
条件2:G9:G13=1
条件3:B14:F14=1
条件1中将可变单元格B9:F13的约束条件设置为二进制数,可使得其取值在0~1之间变化。要将目标约束为二进制数,可在“添加约束”对话框中间的条件下拉列表框中选择“bin”。
各条件添加完成后单击“添加约束”对话框的“确定”按钮返回“规划求解参数”对话框,显示如图1-3所示:
图1-3 设置规划求解参数
步骤5 单击“规划求解参数”对话框的“求解”按钮开始求解运算过程,并显示找到结果,单击“规划求解结果”对话框的“确定”按钮可保存此结果,显示如图1-4所示:
图1-4 任务分配规划求解结果
规划结果显示,5位程序员分别依次对应开发模块4、模块1、模块3、模块2、模块5时,整个5人团队可以达到最高的工作效率,完成所有任务的时间为70个单位。这种模式不考虑某位程序员在完成本人任务后继续参与其他任务的情况。
本案例中,待分配任务的数量和可用于完成任务的人员数量均为5个,即保持了一种等额的平衡状态。还有许多时候,任务数量和可供完成任务的人员或设备数量并不相等,存在着任务超额,或人员、设备超员的可能。当双方数量不相等时,需要调整规划求解的模型,使双方能够保持“模拟等额”的状态,具体方法可继续阅读下文。
超额任务分配
当任务数量大于可供完成任务的人员或设备时,可称之为超额任务。对于此类任务分配问题,可在规划求解模型中新增一个虚拟的人员或设备,参与到当前任务的分配过程中来。而实际上,这个新增的虚拟人员或设备并非当前就可提供,因此在计算开销时暂不需要考虑这部分时间或费用。
同样以《等额任务分配》中的案例为例,程序开发任务增加到6个模块,原有的开发人员和时间估算保持不变,新增任务的时间估算具体如图1-5中G列所示:
图1-5 完成模块开发任务所需时间
使用Excel规划求解工具进行统筹安排的具体方法如下:
步骤1 根据题目需求,在原有题目条件的下方建立规划求解所需的公式模型,如图1-6所示:
图1-6 建立规划求解的模型
与图1-2进行比较可以发现,这里建立的模型除了新增模块6的数据单元格外,还在第14行新增了一个“虚拟程序员”,共同参与任务分配工作,其他内容基本保持不变。
其中,B9:G14单元格区域用于记录实际的任务分配情况,可用数字0表示任务未分配,用数字1表示分配此任务。此区域将作为规划求解的可变单元格区域。
H列用于统计各程序员最终的任务分配情况,根据任务分配问题的特性,每个程序员最终只能分配到1个任务。在H9单元格内输入公式“=SUM(B9:G9)”,然后向下复制填充至H14单元