运用回溯与分支限界算法求解完全背包问题并进行分析。具体要求如下: 针对完全背包问题,实现回溯法和分支限界算法; 以物品种类数n为输入规模,固定n,随机产生大量测试样本; 用蒙特卡洛法对分支数量进行估计,根据统计结果给出应用蒙特卡洛估计整数背包问题分支数量的建议; 在分支限界法计算代价函数时,使用其他算法(如动态规划法)计算出真实值,记录结点的代价函数与真实值,分析在同一输入规模下不同层代价函数的近似效果; 改变n,分析在不同输入规模下同一层代价函数的近似效果; 针对实验结果,设计新的代价函数,并分析其有效性(近似能力、剪枝效果、增加的开销等)。 附加:运用分支限界法求解多重背包问题并进行分析,具体要求如下: 每种物品的数量有限,第i种物品的数量上限为ki个; 设计2种以上代价函数,实现分支限界法,并进行对比分析。