首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C代码,将应填入 (n) 处的字句。 [说明] 设某一机器由n个部件组成,每一个部件都可以从m个不同的供应商处购得。供应商j供应的部件i具有重量wij和价格cij。设计一个算法,求解总价格不超过上限cc的最小重量的机器组成。
阅读下列说明和C代码,将应填入 (n) 处的字句。 [说明] 设某一机器由n个部件组成,每一个部件都可以从m个不同的供应商处购得。供应商j供应的部件i具有重量wij和价格cij。设计一个算法,求解总价格不超过上限cc的最小重量的机器组成。
admin
2012-03-21
53
问题
阅读下列说明和C代码,将应填入 (n) 处的字句。
[说明]
设某一机器由n个部件组成,每一个部件都可以从m个不同的供应商处购得。供应商j供应的部件i具有重量wij和价格cij。设计一个算法,求解总价格不超过上限cc的最小重量的机器组成。
采用回溯法来求解该问题:
首先定义解空间。解空间由长度为n的向量组成,其中每个分量取值来自集合{1,2,…,m),将解空间用树形结构表示。
接着从根结点开始,以深度优先的方式搜索整个解空间。从根结点开始,根结点成为活结点,同时也成为当前的扩展结点。向纵深方向考虑第一个部件从第一个供应商处购买,得到一个新结点。判断当前的机器价格(c11)是否超过上限(cc),重量(w11)是否比当前已知的解(最小重量)大,若是,应回溯至最近的一个活结点;若否,则该新结点成为活结点,同时也成为当前的扩展结点,根结点不再是扩展结点。继续向纵深方向考虑第二个部件从第一个供应商处购买,得到一个新结点。同样判断当前的机器价格(c11+c21)是否超过上限(cc),重量(w11+w21)是否比当前已知的解(最小重量)大。若是,应回溯至最近的一个活结点;若否,则该新结点成为活结点,同时也成为当前的扩展结点,原来的结点不再是扩展结点。以这种方式递归地在解空间中搜索,直到找到所要求的解或者解空间中已无活结点为止。
[C代码]
下面是该算法的C语言实现。
(1)变量说明
n:机器的部件数
m:供应商数
cc:价格上限
w[][]:二维数组,w
[j]表示第j个供应商供应的第i个部件的重量
c[][]:二维数组,c
D]表示第j个供应商供应的第i个部件的价格
bestW:满足价格上限约束条件的最小机器重量
bestC:最小重量机器的价格
bestX[]:最优解,一维数组,bestX
表示第i个部件来自哪个供应商
cw:搜索过程中机器的重量
cp:搜索过程中机器的价格
x[]:搜索过程中产生的解,x
表示第i个部件来自哪个供应商
i:当前考虑的部件,从0到n-1
j:循环变量
(2)函数backtrack
int n=3;
int m=3;
int cc=4;
int w[3][3]={{1,2,3},{3,2,1},{2,2,2}};
int c[3][3]={{1,2,3},{3,2,1},{2,2,2}};
int bestW=8;
int bestC=0;
int bestX[3]={0,0,0};
int cw=0;
int cp=0;
int x[3]={0,0,0};
int backtrack (int i){
int j=0;
int found=0;
if(i>n-1){ /*得到问题解*/
bestW=cw;
bestC=cp;
for(j=0; j<n; j++){
(1) ;
}
return 1;
}
if (cp<=cc)(/*有解*/
found=1;
}
for(j=0; (2) ; j++){
/*第i个部件从第j个供应商购买*/
(3) ;
cw=cw+w
[j];
cp=cp+c
[j];
if (cp<=cc&& (4) ){/*深度搜索,扩展当前结点*/
if (backtrack(i+1)){ found -1; )
}
/*回溯*/
cw=cw - w
[j];
(5) ;
}
return found;
}
(2)
选项
答案
j<m
解析
转载请注明原文地址:https://kaotiyun.com/show/PeDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
甲、乙软件公司于2013年9月12日就其财务软件产品分别申请“大堂”和“大唐”商标注册。两财务软件相似,且经协商双方均不同意放弃使用其申请注册的商标标识。此情形下,()获准注册。
某汽车维修公司有部门、员工和顾客等实体,各实体对应的关系模式如下:部门(部门代码,部门名称,电话)员工(员工代码,姓名,部门代码)顾客(顾客号,姓名,年龄,性别)维修(顾客号,故障情况,维修日期,员工代码)假设每个部门允许有多部电话,则电话属性为
在进程状态转换过程中,可能会引起进程阻塞的原因是______。
用面向对象方法设计了一个父类File和两个子类DiskFile和TapeFile,这两个子类继承了其父类的open方法,并给出不同的实现。不同的子类执行open方法时,有不同的行为,这种机制称为_____。
下图是________________设计模式的类图,该设计模式的目的是________________,图中,Decorator和Component之间是________________关系,ConcreteDecorator和Decorator之间是_
确定测试基线属于()活动。
以下关于建立良好的程序设计风格的叙述中,正确的是()。
错误管理的流程可以概括为:测试人员提交新的错误入库,错误状态为1,高级测试人员验证错误,如果确认是错误,分配给相应的开发人员,设置状态为2,如果不是错误,则拒绝,设置为“拒绝”状态:开发人员查询状态为3的错误,做如下处理:如果不是错误,则置状态为“拒绝”,
函数main()、f()的定义如下所示。调用函数f()时,第一个参数采用传值(callbyvalue)方式,第二个参数采用传引用(callbyreference)方式,main()执行后输出的值为_______。
随机试题
李益的______写得最多最好,其边塞诗内容比较丰富,主要抒写战士们久戍思归的怨望心情,情调感伤而不乏壮词。李益诗各体皆工,尤以七绝为第一,所以他的边塞诗也以______最为著名而流传于世。
A.新生儿阑尾炎B.小儿阑尾炎C.妊娠期阑尾炎D.老年人阑尾炎E.异位阑尾炎大网膜发育不全,穿孔率可达30%的是
A.痢下赤白,肛门灼热B.痢下鲜紫脓血,或神昏痉厥C.痢下白多赤少,或纯为白冻D.痢下稀薄,带有白冻,或见滑脱不禁E.痢下时发时止,经年不愈
违法分包是指下列中的哪几项?()①总承包单位将建设工程分包给不具备相应资质条件的单位;②总承包单位将建设工程主体分包给其他单位;③分包单位将其承包的工程再分包的;④分包单位多于3个以上的。
属于甲级工程造价咨询企业资质等级的标准是()。
SCL—90评定的时间范围是()。
2012年,我国要继续加强和改善宏观调控,促进经济平稳较快发展。要深入分析经济发展和运行趋势变化,准确把握宏观调控的力度、节奏、重点。要继续实施积极的财政政策和稳健的货币政策。财政政策要继续完善结构性减税政策,加大民生领域投入,积极促进经济结构调整,严格财
求解下列微分方程:1492
Intheearly20thcentury,attheadventofthetelephone,itwasconsideredasuperfluousinstrumentwhichwouldneverbeofpr
Asimplecomputerprogramthatteacheschildrentodistinguishbetweensoundscandramatically【C1】______theirlisteningskills.
最新回复
(
0
)