题目描述
分配问题要求将n个任务分配给n给人,每个人完成任务的代价不同,要求分配的结果最优,此题可以使用回溯求解。
简要分析和设计
假设存在四个人a,b,c,d,任务1,任务2,任务3,任务4,和对应的代价矩阵如下:
采用分支界限法,需要计算最优边界Lb,Lb=已分配任务的代价+剩余未分配任务中最小的代价,然后构造状态空间树,上面例子的状态空间树如下:
开始节点表示还未给任何人分配任务,然后在开始节点的基础上寻找可扩展节点。最开始的start中的lb=每行最小之和(2+3+1+4=10)
由于此时a有四种选择,则有四个扩展节点,然后分别计算可扩展节点的lb,当a选择任务1时,剩余未分配的任务则选择每行代价最小的任务,计算其总和则为此时的lb=9+3+1+4=17,以此类推,画出状态空间树得出,任务最优分配为(2,1,3,4),最小代价之和为13。