首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 设某一机器由n个部件组成,每一个部件都可以从m个不同的供应商处购得。供应商j供应的部件i具有重量Wij和价格Cij。设计一个算法,求解总价格不超过上限cc的最小重
阅读下列说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 设某一机器由n个部件组成,每一个部件都可以从m个不同的供应商处购得。供应商j供应的部件i具有重量Wij和价格Cij。设计一个算法,求解总价格不超过上限cc的最小重
admin
2015-06-03
32
问题
阅读下列说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
设某一机器由n个部件组成,每一个部件都可以从m个不同的供应商处购得。供应商j供应的部件i具有重量W
ij
和价格C
ij
。设计一个算法,求解总价格不超过上限cc的最小重量的机器组成。
采用回溯法来求解该问题:
首先定义解空间。解空间由长度为n的向量组成,其中每个分量取值来自集合{1,2,…,m},将解空间用树形结构表示。
接着从根结点开始,以深度优先的方式搜索整个解空间。从根结点开始,根结点成为活结点,同时也成为当前的扩展结点。向纵深方向考虑第一个部件从第一个供应商处购买,得到一个新结点。判断当前的机器价格(C
11
)是否超过上限(cc),重量(W
11
)是否比当前已知的解(最小重量)大,若是,应回溯至最近的一个活结点;若否,则该新结点成为活结点,同时也成为当前的扩展结点,根结点不再是扩展结点。继续向纵深方向考虑第二个部件从第一个供应商处购买,得到一个新结点。同样判断当前的机器价格(C
11
+C
21
)是否超过上限(cc),重量(W
11
+W
21
)是否比当前已知的解(最小重量)大。若是,应回溯至最近的一个活结点;若否,则该新结点成为活结点,同时也成为当前的扩展结点,原来的结点不再是扩展结点。以这种方式递归地在解空间中搜索,直到找到所要求的解或者解空间中已无活结点为止。
【C代码】
下面是该算法的C语言实现。
(1)变量说明。
n:机器的部件数。
m:供应商数。
cc:价格上限。
w[][]:二维数组,w
[j]表示第j个供应商供应的第i个部件的重量。
c[][]:二维数组,c
[j]表示第j个供应商供应的第i个部件的价格。
best1W:满足价格上限约束条件的最小机器重量。
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
(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;
}
选项
答案
(1)bestX[j]=x[j]。 (2)j
解析
本题考查回溯法的应用。
在题目的描述中告诉了回溯法的基本思想。其实回溯法主要有两个过程,一个是向前探索,只要在当前满足设定的判定条件时,才向前探索;而另外一个就是回溯,在两种情况下,需要回溯,其分别是当不满足设定条件时和求的一个解的时候。
下面具体分析本试题。根据题目给出的注释,已知第(1)空所处的位置是得到问题的一个解时,根据题目描述,应该是将这个解记录下来,存放到bestX数组当中,而求得的解是保存在x数组当中的,因此这里需要循环将x数组中的元素值赋给bestX数组,因此第(1)空答案为bestX[j]=x[j]。
第(2)空是for循环中的循环判定条件,根据题目注释知道该循环的作用是确定第i个部件从第j个供应商购买,那么在确定第i个部件到底是从哪个供应商购买时,需要比较从各供应商购买的情况,因此循环的次数为供应商数,因此第(2)空答案是j
=j。
第(4)空是if语句中的一个条件,根据题目注释,可以知道如果该if语句表达式的计算结果为真,需要进行深度搜索,扩展当前结点,那么如果要继续向前探索,就需要满足设定的条件,也就是当前总重量要小于bestW,而当前总价格要小于等于cc,因此第(4)空的答案应该填cw
根据题目注释,第(5)空是在回溯下面的语句,根据回溯的原则可以知道,回溯时,要将当前考虑的结点的重量和价格从总重量和总价格中减去,因此第(5)的答案是 cp=cp-c
[j]。
转载请注明原文地址:https://jikaoti.com/ti/gsi7FFFM
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
在Windows2003中,(1)不能实现NAT功能。A.终端服务管理器B.Internet连接共享C.路由和远程访问在服务器2的eth1上启用基本防火墙,如果希望将202.117.12.38固定分配给IP地址为192.1
IPSec工作在TCP/IP协议栈的(1),为TCP/IP通信提供访问控制、(2)、数据源验证、抗重放、(3)等多种安全服务。IPSec的两种工作模式分别是(4)和(5)。(1)~(5)备选答案:A.应用层B.网络层C.数据链
根据你的网络工程经验,请用250字以内的文字简要描述该21层教学综合大楼网络层次结构设计的要点。(不要求画图)请用300字以内的文字,以提纲形式描述该21层教学综合大楼综合布线设计的方案要点。
阅读以下有关网络接入方案的说明,回答问题1~3。【说明】某单位己完成了主干网络的建设任务,现在需要对其职工住宅区的用户接入主干网的技术方案作选型设计。职工住宅已有的通信条件是:(1)电话线(2)电视铜缆。在不重新布线的前提下,以下5种技术方
在RAS上存在着两个RJ45的端口,分别为Console与AUX,请问这两个端口的用途是什么?(控制在100个字以内)在调用超级终端程序进行设备连接时,应该对设备的连接参数进行正确设置,参数主要包括串口数据传输率、数据位数。停止位数以及是否有奇偶校验。
下面是Web页面处理中3个步骤,请将其进行正确排序。①Web服务器接收到Web页面请求后,寻找所请求的Web页面,并将所请求的Web页面传送给Web浏览器。②Web浏览器接收到所请求的Web页面,并将它显示出来。③Web浏览器向一个
简述网络规划阶段需求分析的方法和解决的问题。(控制在100个字以内)在网络规划阶段“系统可行性分析和论证”的主要内容是什么?(控制在100个字以内)
PGP协议采用RSA和IDEA两种加密算法组成链式加密体系,这种方案的优点是(1)。PGP还可以对电子邮件进行认证,认证机制是用MD5算法产生(2)位的报文摘要,发送方用自己的RSA私钥对(3)进行加密,附加在邮件中进行传送。公钥只用来加密(4),文件是用
L2TP协议是一种基于(1)协议的二层隧道协议,它结合了Cisco的L2F和MicrosoftPPTP的优点。该协议报文在传输层封装(2)协议之上,为了保证传输的可靠性,L2TP协议对控制报文采取了(3)机制,并要求tunne1对端设备在隧道(tunne
对一个大型校园网工程进行网络备份系统设计时,应考虑解决哪些主要的问题?请用150字以内的文字简要说明。数据库系统存储了大量的数据,在发生意外的情况下,为了确保数据能够尽可能准确地恢复,数据库系统提供了备份和恢复的功能。通常,数据库管理系统都提供了全部数
随机试题
频谱多普勒超声可直接测量的血流参数是
Itisessentialthatallthereportstobepublished______twice.
活检时,切取活检组织的部位是
如图所示,有一平面谐波以速度u沿x轴正向传播,已知尸点的振动方程为:y=Aeos(tot+φ),则波动方程为()。
下列哪种账簿每年不必更换一次()。
企业促销方式的选择应服务于企业的()目标。
根据个人所得税法律制度的规定,下列说法不正确的是()。
幼儿园园长、教师、医师、保健员和其他工作人员,都应接受过相关的专业训练,(),方可上岗。
设f(x)在区间[a,b]上二阶连续可导,证明:存在ξ∈(a,b),使得
Theoldmusiciandecidedtomovetohercountryhome______heradvancedageandpoorhealth.
最新回复
(
0
)