- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法设计与分析实验报告
专业
班级
姓名
学号
实验名称
实验四:回溯与分支限界算法设计
实验目的
掌握回溯法解决问题的一般步骤。
学会使用回溯法解决实际问题。
掌握分支限界法解决问题的基本思想。
学会使用分支限界法解决实际问题。
骑士游历问题(采用回溯法):
在国际象棋的棋盘(8行X 8列)上放置一个马,按照“马走 日字”的规则,马要遍历棋盘,即到达棋盘上的每一格,并 且每格只到达一次。若给定起始位置(x0,y0),编程探索出一 条路径,沿着这条路径马能遍历棋盘上的所有单元格。
2.行列变换问题(采用分支限界法):
实验内容给定两个m n方格阵列组成的图形 A和图形B,每个方格的 颜色为黑色或白色,如下图所示。行列变换问题的每一步变 换可以交换任意2行或2列方格的颜色,或者将某行或某列颠 倒。上述每次变换算作一步。试设计一个算法,计算最少需 要多少步,才能将图形A变换为图形B。
实验内容
图形A图形B
图形A
1.骑士游历问题的解题思路或算法思想:
如果在每步选择方向时,不是任意选择一个方向,而是经过
一定的测试和计算,“预见”每条路的“宽窄”,再选择一
条最“窄”的路先走,成功的可能性较大。理由是先走“困
难的路”,光明大道留在后面。因为每一格迟早都要走到,
与其把困难留在后面,不如先走“困难的路”,这样路就会
越走越宽,成功的机会就越大。这种方法称为预见算法。
算法描述
为母个力|口」测定一个值 可通路数,仑表小该位直上还有
多少条通路。在每一格上对8个方向都进行试探,并分析比
较,下一步应该选择可通路数值最小的方向走。
2.行列变换问题的解题思路或算法思想:
先进先出队列式分支限界法
输入数据,将计算出的最少变换次数和相应的变换序列输出。」
第1行是最少变换次数。从第2行开始,每行用4个数表小
一次变换。
程序及运行结果
1.骑士游历问题的程序:
package ;
import
public class Qishi (
private boolean Travel(int firstX, int firstY, int皿 board) (
ength; j++) {
if (board[i]田 10) {
+ board[i][j]);
} else {
}
);
}
}
}
实例:
输入起始点(。-7);
游历完成;
41
14
43
46
25
16
27
2
44
5S
49
3S
1
24
17
13
42
45
58
47
26
3
28
弱
63
54
39
关
37
10
23
53
12
57
43
59
21
29
4
G4
g
62
51
36
49
32
19
11
52
7
66
21
34
5
30
8
61
19
3S
6
31
20
33
2.行列变换问题的程序:
package ;
import graph(
static int sour, dest;//sour是图形的初始整数,dest是图形的目的整 数
static int ans[]=new int[116];//静态变量(即全局变量),用于存 放图形变换的路径
int m=4,n=4,x;
int row[]=new int[4];
int col[]=new int[4];
void setx(int x)(
=x;
}
int getx()(
return ;
}
void rowx()(//将一个整数划分成四行二进制
int y;
for(int i=0;im;i++)(
y=1;
row[i]=0;
for(int j=0;jn;j++){
if((x1)!=0) //如果x的最低位是1
row[i]|=y;
y=1;
x=1;
}
}
}
void colx(){//将一个整数划分成四列二进制
int y;
for(int j=0;jn;j++) col[j]=0;
y=1;
for(int i=0;im;i++){
for(int j=0;jn;j++){
if((x1)!=0) //如果x的最低位是1
col[j]|=y;
x=1;
}
y=1;
}
}
void rowy()(//将四行二进制转换成一个整数
int z=1, x=0, y;
for(int i=0;im;i++){
y=row[i];
for(int j=0;jn;j++){
if((y1)!=0) //如果y的最低位是1 x|=z;
z=1;
y=1;
}
}
=x;
}
void coly(){//将四列二进制转换成一个整数
int z=1, x=0,-y;
for(int i=0;im;i++)(
for(int j=0;jn;j++)(
if((col[j]1)!=0)//如果y的最低位是1 x|=z;
z=1;
col[j]=
您可能关注的文档
最近下载
- 2023年导热油锅炉竣工最全面精品资料.pdf VIP
- 错案问责申请书范文.docx VIP
- 保时捷-Macan (迈凯)-产品使用说明书-Macan GTS-Macan GTS-17Macan_95B_Basis_BAL_WKD95B039317_CHS_HighRes.pdf VIP
- 2025年04月10月自考《财务管理学》真题及答案.docx VIP
- Unit8OnceuponaTimeSectionA2a-2e(第2课时)课件内嵌音视.pptx
- 个人债务集中清理工作指引.pdf VIP
- 24CDX009-2数据中心机电设施设计与安装-电力模块锂离子电池柜间接蒸发冷却空调系统.docx
- 入党志愿书里面的入党志愿.docx VIP
- 关于入党志愿书里的入党志愿.docx VIP
- 叠合板吊装专项施工方案.doc VIP
文档评论(0)