- 实践题目 :工作分配问题
- 问题描述:设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。
- 算法描述(包括解空间,画出测试样例的解空间树,剪枝(约束函数或限界函数)方法描述)
这道题就是旅行售货员问题的同类
第一个判断条件是访问到最后一个人时与当前最优解进行比较
第二个是如果当前解大于当前最优解则不需要继续访问,可以减少时间(做的时候是>号,发现>=可能更好)
第三个判断当前任务是否被分配。
第n层表示第n个人的选择
- 心得体会(对本次实践收获及疑惑进行总结)
回溯法的精髓在于剪枝,那就需要约束函数或限界函数去实现。这道题设一个一维数组表示任务的选择情况我觉得是这道题的核心。
结对编程讨论这些限界条件会有比较大的争议,大家按照自己方法做出来再讨论比较有效率。
原文地址:https://www.cnblogs.com/ReJay/p/10151585.html
时间: 2024-11-02 05:43:06