第五章实践

  1. 实践题目 :工作分配问题
    1. 问题描述:设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。
    2. 算法描述(包括解空间,画出测试样例的解空间树,剪枝(约束函数或限界函数)方法描述)

这道题就是旅行售货员问题的同类

第一个判断条件是访问到最后一个人时与当前最优解进行比较

第二个是如果当前解大于当前最优解则不需要继续访问,可以减少时间(做的时候是>号,发现>=可能更好)

第三个判断当前任务是否被分配。

 

第n层表示第n个人的选择

  1. 心得体会(对本次实践收获及疑惑进行总结)

回溯法的精髓在于剪枝,那就需要约束函数或限界函数去实现。这道题设一个一维数组表示任务的选择情况我觉得是这道题的核心。

结对编程讨论这些限界条件会有比较大的争议,大家按照自己方法做出来再讨论比较有效率。

猜你喜欢

转载自www.cnblogs.com/ReJay/p/10151585.html
今日推荐