全球旧事资料 分类
案的总价值不比maxv大时,该方案不会再被考察。这同时保证函数后找到的方案比前面的方案更好。对于第i件物品的选择有两种可能:(1)物品i被选择,这种可能性仅当包含它不会超过方案总重量的限制时才是可行的。选中后,继续递归去考虑其余物品的选择。(2)物品i不被选择,这种可能性仅当不包含物品也有可能会找到价值更大的方案的情况。算法:try(物品i,当前选择已达到的重量和tw,本方案可能达到的总价值为tv)考虑物品i包含在当前方案中的可能性if(包含物品i是可接受的)将物品i包含在当前方案中;if(i
1)tryi1,tw物品i的重量,tv;else又一个完整方案,因它比前面的方案好,以它作为最佳方案以当前方案作为临时最佳方案保存;恢复物品i不包含状态;考虑物品i不包含在当前方案中的可能性if(不包含物品i仅是可考虑的)if(i
1)tryi1,tw,tv物品i的价值;else又一个完整方案,因它比前面的方案好,以它作为最佳方案以当前方案作为临时最佳方案保存;
f任务二(皇后问题):
求出在一个
的棋盘上,放置
个不能互相捕捉的国际象棋“皇后”的所有布局。这是来源于国际象棋的一个问题。皇后可以沿着纵横和两条斜线四个方向相互捕捉。如图1所示,一个皇后放在棋盘第四行第三列位置上,则棋盘上凡打星号“”的位置上的皇后就能与第四行第三列位置上的皇后相互捕捉。从图1得到以下启示,一个合适的解应使得每行、每列上确定有一个皇后,且在一条斜线上也最多只有一个皇后。Q
图1皇后相互捕捉位置示意图算法思想:求解过程从空配置开始,在第1列至第m列为合理配置的基础上,再配置第m1列。直至第
列配置也是合理时,就找到了一个解。接着改变第
列配置,希望获得下一个解。另外,在任一列上,可能性有
种配置。开始时,配置在第一行,以后改变时。顺次选择第二、第三……直到第
行。当直至第
行也找不到一个合理的配置时,就要回溯,去改变前一列的配置。求解皇后问题的算法如下。算法:输入棋盘大小值
;一个
的棋盘m0;从置开始空配good1;空配置皇后不相互捕捉doif(good)if(m
)输出解;改变之,形成下一个侯选解;else扩展当前侯选解至下一列;else改变之,形成下一侯选解;good检查当前侯选解的合理性;while(m0)
f任务三(随机模拟问题):
某公司有一个顾客接待站,在单位时间内随机的有
位顾客到接待站r
好听全球资料 返回顶部