第五章实践
Posted luzhibin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第五章实践相关的知识,希望对你有一定的参考价值。
一。实践题目
7-2 工作分配问题
二。问题描述
设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。
解空间:
int Backtrack(int t) { if(t>n && sum<Min){ Min=sum; return Min; } else { for(int k=0;k<n;k++){ if(b[k]==0){ sum=sum+a[t-1][k]; b[k]=1; if(sum<=Min) Backtrack(t+1); sum=sum-a[t-1][k]; b[k]=0; } } } }
约束函数:if(sum<=Min) 判断对比当前选择后的费用sum与之前记录的最小总费用Min
减枝:if(b[k]==0) 将已选择的物品记录,并在解空间中删除对应树枝。
四。心得体会
这次实践题目不仅需要对解空间清楚分析并写出其对应的回溯算法,更需要很好地减枝,将算法时间缩短,通过这次实践,能对回溯算法如何减枝有了更深的体会,以及如何全面减枝有了一定地训练。
以上是关于第五章实践的主要内容,如果未能解决你的问题,请参考以下文章