- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验报告最小重量机器设计问题
实 验 报 告
课程名称: 算法设计与分析
实验项目: 最小重量机器设计问题
实验类型:综合性□ 设计性□ 验证性?
专业班别:
姓 名:
学 号:
实验课室: 第 计算机实验室
指导教师:
实验日期: 2013-12-12
一、实验项目训练方案
小组合作:是□ 否?小组成员:实验目的:
通过回溯法的示例程序理解回溯法的基本思想;
运用回溯法解决实际问题进一步加深对回溯法的理解和运用。
实验场地及仪器、设备和材料
操作系统: winXP 、 Win7、ubuntu
开发环境:VC++ 6.0、Visual Studio 2010
实验训练内容(包括实验原理和操作步骤):
一、实验内容:
练习使用回溯法求解“最小重量机器设计”问题。
二、实验题
题目描述
设某一机器由n个部件组成,每一种部件都可以从m个不同的供应商处购得。设 wij 是从供应商j 处购得的部件i的重量, cij 是相应的价格。设计一个优先队列式分支限界法,给出总价格不超过d的最小重量机器设计。
对于给定的机器部件重量和机器部件价格,设计一个优先队列式分支限界法,计算总价格不超过d的最小重量机器设计。
输入
输入数据的第1 行有3 个正整数n ,m和d(n,m20,d100)。接下来的2n 行,每行n个数。前n行是c,后n行是w。
输出
将计算出的最小重量,以及每个部件的供应商分成两行输出。无解请输出“No Solution!”。
示例输入
3 3 4
1 2 3
3 2 1
2 2 2
1 2 3
3 2 1
2 2 2示例输出
4
1 3 1
三、实验步骤
1.理解回溯算法思想和算法示例;
2.上机输入和调试算法示例程序;
3.理解实验题的问题要求;
4.上机输入和调试自己所编的实验题程序;
5.验证并分析实验题的实验结果;
6.整理出实验报告。
代码如下:
#includeiostream
using namespace std;
const int len=30;
const int maxWeight=4000;
int n,m,cost;
int w[len][len];//重量
int c[len][len];//价钱
int visit[len];
int path[len];
int minWeight = maxWeight;
void findMinWeight(int current,int weight,int i) //当前策略的价钱和最小重量
{
if(i = n)
{
minWeight=weight;
for(int j=0; jn; j++) path[j]=visit[j];
return;
}
for(int j=0; jm; j++)
{
if(current+c[i][j]=cost weight+w[i][j]minWeight)
{
current+=c[i][j];
weight+=w[i][j];
visit[i]=j+1;
findMinWeight(current,weight,i+1);
current-=c[i][j];
weight-=w[i][j];
}
}
}
int main()
{
while(cinnmcost)
{
minWeight = maxWeight;
int i,j;
for(i=0; i2*n; i++)
{
for(j=0; jm; j++)
{
if(in) cinc[i][j];
else cinw[i-n][j];
}
}
findMinWeight(0,0,0);
if(minWeight == maxWeight) cout-1endl;
else
{
coutminWeightendl;
for(i=0; in; i++)
{
if(i==0) coutpath[i];
else cout path[i];
}
coutendl;
}
}
return 0;
}
结果:
二、实验总结与评价
实验总结(包括实验数
您可能关注的文档
- 实测实量作业标准.doc
- 实验一基于人工神经网络的数码识别.doc
- 小学二年级数学-期末模拟试卷一(附答案).doc
- 自动控制实验指导书..doc
- 自动控制原理课程设计最终版,重庆邮电大学移通学院.docx
- 小学二年级数学下册期末测试题10.doc
- 小学二年级数学下册期末测试题3.doc
- 实验一果蔬呼吸强度测定.doc
- 小学二年级数学下册期末测试题5.doc
- 实验一PSOC单片机认识及基本IO编程设计实验指导书(修改).doc
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
文档评论(0)