动态规划算法分析实验报告

动态规划算法分析实验报告
动态规划算法分析实验报告

动态规划算法分析实验报告

————————————————————————————————作者: ————————————————————————————————日期:

?

动态规划算法设计

一、实验内容

编程实现图示多段图的最短路径问题的动态规划算法。(源代码见附录A)

二、实验目的及环境

实验目的:

1、理解动态规划算法的概念;

2、掌握动态规划算法的基本要素; 3、掌握设计动态规划算法的步骤;

4、通过应用范例学习动态规划算法的设计技巧与策略。 实验环境:

WIN7 系统下VC ++6.0环境

1

2

3

4

5

6

7

8

11

10

9

12

9

7 3 2

8

1 6

5 3 5 5

2 4

6 4 4 2 1 1 2

7

三、实验分析与设计

采用动态规划算法的两个基本要素:

最优子结构性质:原问题的最优解包含了其子问题的最优解。

子问题的重叠性质:每次产生的子问题并不总是新问题,有些子问题被反复计算多次。

实验定义:

#define n12/*定义顶点数*/

#define k 5 /*定义段数*/

void init(int cost [ ])//初始化图

void fgraph(int cost[],int path[ ],int d[])向前递推算法求最短路径

voidbgraph(int bcost[ ],intpath1[],int d[])向后递推算法求最短路径

向前递推算法实现:

{int r,j,temp,min;

for(j=0;j<=n;j++)

?cost[j]=0;

?for(j=n-1;j>=1;j--)

{ temp=0;

min=c[j][temp]+cost[temp]; //初始化最小值

?for(r=0;r<=n;r++)

{if(c[j][r]!=MAX)

?{ ?if((c[j][r]+cost[r])

?{ min=c[j][r]+cost[r];

?temp=r;

????}

??}

??}

?cost[j]=c[j][temp]+cost[temp];

??d[j]=temp;

?}

path[1]=1;

?path[k]=n;

for(j=2;j<k;j++)

?path[j]=d[path[j-1]];

后递推算法与前递推算法类似。

四、实验结果显示

五、实验总结

通过理解最优子结构的性质和子问题重叠性质,在VC++6.0环境下实现动态规划算法。动态规划算法是由单阶段的决策最优逐步转化为多阶段的决策最优,最后构造一个最优解。经过反复的调试操作,程序运行才得出结果。

六、附录 A

#include

#include

#include

#include <iostream.h>

#defineMAX 100

#define n12

#define k 5

int c[n][n];

voidinit(intcost[])

{

?int i,j;

for(i=0;i<13;i++)

{

?for(j=0;j<13;j++)

??{

??c[i][j]=MAX;

?}

}

?c[1][2]=9;c[1][3]=7;c[1][4]=3; c[1][5]=2;

c[2][6]=4;c[2][7]=2; c[2][8]=1;

?c[3][6]=2; c[3][7]=7;

c[4][8]=11;

?c[5][7]=11;c[5][8]=8;

c[6][9]=6; c[6][10]=5;

?c[7][9]=4; c[7][10]=3;

?c[8][10]=5;c[8][11]=6;

?c[9][12]=4;

?c[10][12]=2;

c[11][12]=5;

}

voidfgraph(int cost[],int path[],intd[])

int r,j,temp,min;

for(j=0;j<=n;j++)

?cost[j]=0;

for(j=n-1;j>=1;j--)

?{

temp=0;

?min=c[j][temp]+cost[temp];

?for(r=0;r<=n;r++)

?{

?if(c[j][r]!=MAX)

?if((c[j][r]+cost[r])<min)

?{

??min=c[j][r]+cost[r];

??temp=r;

???}

?}

?}

cost[j]=c[j][temp]+cost[temp];

?d[j]=temp;

?}

?path[1]=1;

path[k]=n;

?for(j=2;j<k;j++)

?path[j]=d[path[j-1]];

}

voidbgraph(int bcost[],intpath1[],intd[]) {

intr,j,temp,min;

?for(j=0;j<=n;j++)

?bcost[j]=0;

for(j=2;j<=n;j++)

{

temp=12;

min=c[temp][j]+bcost[temp];

?for(r=0;r<=n;r++)

?{

???if(c[r][j]!=MAX)

{

??if((c[r][j]+bcost[r])

???{

???min=c[r][j]+bcost[r];

???temp=r;

?}

}

??}

??bcost[j]=c[temp][j]+bcost[temp];

??d[j]=temp;

?}

path1[1]=1;

?path1[k]=n;

for(inti=4;i>=2;i--)

?{

path1[i]=d[path1[i+1]];

void main()

{

intcur=-1;

int cost[13],d[12],bcost[13];

?int path[k];

?intpath1[k];

?init(cost);

fgraph(cost,path,d);

?cout<<"使用向前递推算法后的最短路径:\n\n";

?for(inti=1;i<=5;i++)

?{

??cout<

cout<<"\n";

cout<

cout<<"\n使用向后递推算法后的最短路径:\n\n";

bgraph(bcost,path1,d);

?for(i=1;i<=5;i++)

{

?cout<<path1[i]<<" ";

?cout<<"\n";

cout<<endl<<"最短路径为长度:"<

cout<<"\n";

}

动态规划实验报告

华东师范大学计算机科学技术系上机实践报告 一、 内容与设计思想 1.对于以下5 个矩阵: M 1: 2?3, M 2: 3?6, M 3: 6?4, M 4: 4?2, M 5: 2?7 , (a) 找出这5个矩阵相乘需要的最小数量乘法的次数。 (b) 请给出一个括号化表达式,使在这种次序下达到乘法的次数最少。 输入: 第一行为正整数N,表示有N 组测试数据; 每组测试数据的第一行为n,表示有n 个矩阵,2<=n<=50; 接下去的n 行,每行有两个整数x 和y,表示第ni 个矩阵是x*y 的。 输出: 对行每组数据,输出一行,每行一个整数,最小的矩阵连乘积。 我们保证输出的结果在2^64之内。 基本思想: 对于n 个矩阵的连乘积,设其不同的计算次序为P(n)。 由于每种加括号方式都可以分解为两个子矩阵的加括号问题:(A1...Ak)(Ak+1…An)可以得到关于P(n)的递推式如下: 2.定义0/1/2背包问题为:}x p max{n 1i i i ∑=。限制条件为:c x w n 1i i i ≤∑=,且 n i 1},2,1,0{x i ≤≤∈。设f(i , y)表示剩余容量为y ,剩余物品为:i ,i+1,…,n 时的最优解的值。 1.)给出f(i , y)的递推表达式; 2.)请设计求解f(i , y)的算法,并实现你的算法; 3.)设W=[10,20,15,30],P=[6,10,15,18],c=48,请用你的算法求解。 输入: 第一行为一个正整数N ,表示有几组测试数据。 每组测试数据的第一行为两个整数n 和M ,0=-=∑-=

算法设计与分析实验报告贪心算法

算法设计与分析实验报告 贪心算法 班级:2013156 学号:201315614 姓名:张春阳哈夫曼编码 代码 #include float small1,small2; int flag1,flag2,count; typedefstructHuffmanTree { float weight; intlchild,rchild,parent; }huffman; huffmanhuffmantree[100]; void CreatHuffmanTree(intn,int m) { inti; void select(); printf("请输入%d个节点的权值:",n); for(i=0;i

printf("\n"); for(i=0;i

交通规划transCAD软件应用实验报告

transCAD软件应用实验报告课程名称:交通规划

TransCAD软件应用实验报告 一.实验目的与要求 1.1实验目的: 1)能够在指导下安装交通规划软件transCAD,熟悉软件的操作界面和主要功能。 2)能够应用软件进行简单的规划设计,包括导入规划区域背景图、建立路网图、建立交通区图等,能够输出结果并进行简单分析。 1.2实验要求任务: 1. 线层路网文件 2. 面层交通区文件 3. 交通分布的两个OD 矩阵文件 4. 交通分配结果 5. 分析及总结报告(简单的工作过程、交通分布结果、交通分配结果、分析讨论、疑问、心得体会等)二.实验的主要内容 2.1基本数据: 1. 路网和交通区的背景图 2. 各交通区的发生、吸引量:需根据学号修正,修正量=基础量×(1+学号末两位/100) 3. 交通区间阻抗矩阵 4. 路段通行能力统一为单向1900pcu/h 5.路段假设为同一等级,平均设计车速为40km/h,长度需进行换算1mile=1.609km 2.2软件操作过程 1、导入背景图片 Open:*.tif 坐标系统:Aisa,China HongKong1980 Grid 单位:kilometers

2、新建路网层(线层) 1.New-Geographic File 2.选择Line Geographic File,层名:道路网,端点层名:道路网端点层 3.域字段要求:capacity, time,speed 4.画路网:Tools-Map Editing-Toolbox 5.画完后检查路网的连通性:Tools-Map Editing-check line layer connectivity 3、新建交通区层(面层) 1.New-Geographic File,选择Area Geographic File,options选择第一项,输入层名:交通区 2..添加域字段,要求:交通区编码Code,发生量P,吸引量A

动态规划算法的应用实验报告

实验二动态规划算法的应用 一、实验目的 1.掌握动态规划算法的基本思想,包括最优子结构性质和基于表格的最优值计算方法。 2.熟练掌握分阶段的和递推的最优子结构分析方法。 3.学会利用动态规划算法解决实际问题。 二、实验内容 1.问题描述: 题目一:数塔问题 给定一个数塔,其存储形式为如下所示的下三角矩阵。在此数塔中,从顶部出发,在每一节点可以选择向下走还是向右走,一直走到底层。请找出一条路径,使路径上的数值和最大。 输入样例(数塔): 9 12 15 10 6 8 2 18 9 5 19 7 10 4 16 输出样例(最大路径和): 59 三、算法设计 void main() { 申明一个5*5的二维数组; for(int i=0;i<5;i++) { for(int j=0;j<=i;j++) { 输入数组元素p[i][j]; }

} for(int k=0;k<5;k++) { for(int w=0;w<=k;w++) { 输出数组元素p[k][w]; } } for(int a=4;a>0;a--) { for(int s=0;s<=a;s++) { if(p[a][s]大于p[a][s+1]) p[a-1][s]等于p[a-1][s]加p[a][s]; else p[a-1][s] 等于p[a-1][s] 加p[a][s+1]; } } 输出p[0][0] }

四.程序调试及运行结果分析 五.实验总结 虽然这个实验比较简单,但是通过这次实验使我更加了解的动态规划法的好处和、,在解决问题时要尝试使用动态规划,这样就有可能得到一种即简单复杂性有不高的算法。

土地利用规划实验指导书

《土地利用规划》课程实验指导书 环境与地理科学系 2009 年 9 月 10 日

实验一土地需求量预测 一、实验目的 1.了解土地需求量预测的必要性和意义; 2.掌握不同的土地需求量预测方法,明确不同方法的实用性; 3.能够借助传统手工方式或计算机计算方式熟练使用不同的预测方法。 二、实验原理 预测是土地利用管理的重要手段,是了解和协调时期和区域土地利用供给量与需求量之间的关系的重要内容。土地需求量受一定时期国民经济、社会发展、土地质量和区位条件等的影响。耕地需求量预测是土地利用规划预测中最基本的内容。 三、实验过程 1.确定预测目的; 2.检验土地需求量预测案例提供的资料; 3.利用传统手工方式或者计算机软件实施预测过程:分别采用趋势预测法和回归分析法对案例(见附件1)进行预测。其中,手工计算方式严格按照预测方法的原理进行逐步计算;计算机计算可以采用EXCEL数据分析工具或者SPSS软件等; 4.比较传统手工和计算机两种计算方式的优缺点; 5.分析预测误差。 四、注意事项 数据输入时要仔细,分析过程中做到谨慎认真。 五、上交资料 提交实验报告,内容书写要规范。

附件1: 例1. 根据某县市1970-1999年30年耕地面积资料(表-1),采用趋势预测法计算出预测方程并绘制趋势线,同时计算出2000年的耕地面积,最后对预测误差进行分析。 表-1 ××县1970-1999年耕地面积

例2.未来耕地面积受多种因素的制约,如人口、单产、总产、基建投资等,并随着上述因素的变化而变化,在它们之间存在着因果关系。下表提供了某县市1970-1999年30年人口、粮食总产量和耕地面积的资料(表-2),由此采用回归分析法预测2000年的耕地面积,并列出回归分析方程,最后分析预测误差。 表-2 ××县1970-1999年人口、粮食总产量和耕地面积

算法分析_实验报告3

兰州交通大学 《算法设计与分析》 实验报告3 题目03-动态规划 专业计算机科学与技术 班级计算机科学与技术2016-02班学号201610333 姓名石博洋

第3章动态规划 1. 实验题目与环境 1.1实验题目及要求 (1) 用代码实现矩阵连乘问题。 给定n个矩阵{A1,A2,…,A n},其中A i与A i+1是可乘的,i=1,2,…,n-1。考察这n 个矩阵的连乘积A1A2…A n。由于矩阵乘法满足结合律,故计算矩阵的连乘积可以有许多不同的计算次序,这种计算次序可以用加括号的方式来确定。若一个矩阵连乘积的计算次序完全确定,则可以依此次序反复调用2个矩阵相乘的标准算法(有改进的方法,这里不考虑)计算出矩阵连乘积。 确定一个计算顺序,使得需要的乘的次数最少。 (2) 用代码实现最长公共子序列问题。 一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X= < x1, x2,…, xm>,则另一序列Z= < z1, z2,…, zk>是X的子序列是指存在一个严格递增的下标序列< i1, i2,…, ik>,使得对于所有j=1,2,…,k有Xij=Zj 。例如,序列Z=是序列X=的子序列,相应的递增下标序列为<2,3,5,7>。给定两个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X和Y的公共子序列。例如,若X= < A, B, C, B, D, A, B>和Y= < B, D, C, A, B, A>,则序列是X和Y的一个公共子序列,序列也是X和Y的一个公共子序列。而且,后者是X和Y的一个最长公共子序列,因为X和Y没有长度大于4的公共子序列。 (3) 0-1背包问题。 现有n种物品,对1<=i<=n,已知第i种物品的重量为正整数W i,价值为正整数V i,背包能承受的最大载重量为正整数W,现要求找出这n种物品的一个子集,使得子集中物品的总重量不超过W且总价值尽量大。(注意:这里对每种物品或者全取或者一点都不取,不允许只取一部分) 使用动态规划使得装入背包的物品价值之和最大。 1.2实验环境: CPU:Intel(R) Core(TM) i3-2120 3.3GHZ 内存:12GB 操作系统:Windows 7.1 X64 编译环境:Mircosoft Visual C++ 6 2. 问题分析 (1) 分析。

动态规划算法实验

一、实验目的 (2) 二、实验内容 (2) 三、实验步骤 (3) 四.程序调试及运行结果分析 (5) 附录:程序清单(程序过长,可附主要部分) (7)

实验四动态规划算法的应用 一、实验目的 1.掌握动态规划算法的基本思想,包括最优子结构性质和基于表格的最优值计算方法。 2.熟练掌握分阶段的和递推的最优子结构分析方法。 3.学会利用动态规划算法解决实际问题。 二、实验内容 1.问题描述: 题目一:数塔问题 给定一个数塔,其存储形式为如下所示的下三角矩阵。在此数塔中,从顶部出发,在每一节点可以选择向下走还是向右走,一直走到底层。请找出一条路径,使路径上的数值和最大。 输入样例(数塔): 9 12 15 10 6 8 2 18 9 5 19 7 10 4 16 输出样例(最大路径和): 59 题目二:最长单调递增子序列问题(课本184页例28) 设有由n个不相同的整数组成的数列,记为:a(1)、a(2)、……、a(n)且a(i)<>a(j) (i<>j) 若存在i1

题目三 0-1背包问题 给定n种物品和一个背包。物品i的重量是wi,其价值为vi,背包的容量为c,。问应如何选择装入背包中的物品,使得装入背包中物品的总价值最大? 在选择装入背包的物品时,对每种物品只有两个选择:装入或不装入,且不能重复装入。输入数据的第一行分别为:背包的容量c,,物品的个数n。接下来的n 行表示n个物品的重量和价值。输出为最大的总价值。 输入样例: 20 3 11 9 9 10 7 5 输出样例 19 2.数据输入:个人设定,由键盘输入。 3.要求: 1)上述题目任选一做。上机前,完成程序代码的编写 2)独立完成实验及实验报告 三、实验步骤 1.理解算法思想和问题要求; 2.编程实现题目要求; 3.上机输入和调试自己所编的程序; 4.验证分析实验结果; 5.整理出实验报告。

土地利用规划-耕地需求量预测 实验报告

贵州大学实验报告 实验 4 :耕地需求量预测 学院:农学院 专业:农业资源与环境 班级: 姓名: 学号: 指导教师:周焱 时间: 2014 年 06 月 11 日

第一部分实验目的 通过本实验的学习,使学生掌握耕地需求量预测的具体过程。 第二部分实验原理 本实验以兴义市,根据兴义市自然、社会经济条件和发展趋势,预测2010年和2020年兴义市耕地保有量和基本农田保护面积。 第三部分实验步骤 1、搜集兴义市自然经济条件等相关资料; 2、根据人口历史资料和兴义市相关发展规划,对2010年和2020年人口规模进行预测; 3、根据人口预测和相关粮食标准对耕地保有量和基本农田保护面积进行预测; 第四部分报告正文 根据表1中1997年——2005年年平均人口自然增长率,得出年平均人口增长率为0.82%,年平均人口机械增长率为0.38%,以2004年作为参考依据,预测出2010年与2020年的人口规模: P t = P o ×(1+K+P)(t-to)+(c-d) 式中:P t ——规划年人口数 P t0 ——基期年人口数 t-t ——预测年期 K——人口自然增长率 c——规划期内迁入人数 d——规划期内迁出人数 P t2010 = P t2004 ×(1+K+P)(t-to)+(c-d) =73.42×(1+0.82%+0.38%) 6+4.3 =83.17 (万人) P t2020 = P t2004 ×(1+K+P)(t-to) =73.42×(1+0.82%+0.38%) 16+4.3 = 93.16(万人) 根据年平均增长率法计算出年均粮食单产,其中r为2000年——2005年的年平均增长率的平均值1.03%: a n = a o ×(1+r)n

算法分析实验报告--分治策略

《算法设计与分析》实验报告 分治策略 姓名:XXX 专业班级:XXX 学号:XXX 指导教师:XXX 完成日期:XXX

一、试验名称:分治策略 (1)写出源程序,并编译运行 (2)详细记录程序调试及运行结果 二、实验目的 (1)了解分治策略算法思想 (2)掌握快速排序、归并排序算法 (3)了解其他分治问题典型算法 三、实验内容 (1)编写一个简单的程序,实现归并排序。 (2)编写一段程序,实现快速排序。 (3)编写程序实现循环赛日程表。设有n=2k个运动员要进行网球循环赛。现 要设计一个满足以下要求的比赛日程表:(1)每个选手必须与其它n-1个选手各赛一次(2)每个选手一天只能赛一场(3)循环赛进行n-1天 四、算法思想分析 (1)编写一个简单的程序,实现归并排序。 将待排序元素分成大小大致相同的2个子集合,分别对2个子集合进行 排序,最终将排好序的子集合合并成为所要求的排好序的集合。 (2)编写一段程序,实现快速排序。 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有 数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数 据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据 变成有序序列。 (3)编写程序实现循环日赛表。 按分治策略,将所有的选手分为两组,n个选手的比赛日程表就可以通

过为n/2个选手设计的比赛日程表来决定。递归地用对选手进行分割, 直到只剩下2个选手时,比赛日程表的制定就变得很简单。这时只要让 这2个选手进行比赛就可以了。 五、算法源代码及用户程序 (1)编写一个简单的程序,实现归并排序。 #include #include #define MAX 10 using namespace std; void merge(int array[],int p,int q,int r) { int i,k; int begin1,end1,begin2,end2; int* temp = new int[r-p+1]; begin1 = p; end1 = q; begin2 = q+1; end2 = r; k = 0; while((begin1 <= end1)&&(begin2 <= end2)) { if(array[begin1] < array[begin2]) { temp[k] = array[begin1]; begin1++; } else { temp[k] = array[begin2]; begin2++; } k++; } while(begin1 <= end1) {

交通规划A实验报告

《交通规划A》实验说明 一、总说明 交通运输专业2013级《交通规划A》课程实验课时10学时,共设8个实验项目。实验课成绩占课程总评成绩的10%。 二、实验报告要求 (1)根据实验指导书的要求,实验报告独立完成; (2)能较好地体现实验内容中所要求的各项内容; (3)按时上交实验报告,实验报告按照指定格式打印; (4)实验报告应做到文字通顺,思路清晰,图表整洁、清晰、正确。 三、主要学习资料 (1)TransCAD软件使用说明书. (2)TransCAD交通需求模型教程. (3)李海峰.TransCAD基本操作.北京:交通部规划研究院,2003. (4)李海峰.TransCAD交通需求模型.北京:交通部规划研究院,2003. 四、实验报告标准格式 参见附件材料。

《交通规划A》实验报告 姓名: 院系:交通运输工程学院 班级: 学号: 指导老师:吴立烜 时间:2016.4

实验报告(一) 姓名:关伟班级:交通运输1302班学号:201330010234 实验时间:2016.4.28 实验成绩: 实验1:TransCAD基本操作实验 (地图操作/主题图操作/选择操作) 一、实验内容 全面了解TransCAD的功能,熟悉软件的安装。能操作下列内容:创建或打开一幅地图、地图的移动与缩放、设定比例尺、图层操作、自动控制地图、修改地图风格和标注;绘制颜色主题图、点密度主题图、按比例大小的符号主题图、图表主题、方式主题和柱状地图;能进行条件选择、值选择、位置选择、主题选择、组合选择、设定选择集的风格等。 二、实验实施步骤 1. 打开一幅地图,如图打开的是SYATES.map

TRANSCAD实验报告

实验2:TransCAD基本操作实验 (数据操作/矩阵操作/网络操作) 姓名:班级:学号: 实验时间:2011-5-5 实验成绩: 一、实验内容 通过实验能操作下列内容:改变Dataview的显示方式(修改数据库的标题、字体、字号、黑体/斜体、是否需要网格、是否高亮显示选择集)、列加宽、列减宽、列设置(如修改列标题等)、列的锁定、列的隐藏、列排序(升序或降序)、增加记录或删除记录、数据库的结构修改、数据库与地理属性的联合;矩阵的生成、矩阵的组合、矩阵排序、矩阵的填充运算、矩阵的求和、更改矩阵的索引号;生成网络、配置网络、禁止使用网络中的某些路段、使用单行道、设定交叉口转弯处罚和交通方式转换处罚。 二、实验实施步骤 1.数据操作: ○1.显示数据 ? 选择File-Open,然后打开Tutorial文件夹中的地图文件NYCITY.MAP ? 工具条上显示5-Digit ZIP层是工作层。单击工具条上的来打开这层的dataview ? 选择File-New,从new file选项中选择Dataview,并单击OK来显示New Dataview对话框 ? 选择Streets层并单击OK来为Streets层打开第二个dataview ? 选择File-Open,然后打开Tutorial文件夹中的dBASE文件KIDSTORE. DBF ? 选择Window-Tile来查看所有的四个窗口 ○2.排列Dataview中的行 ? 选择File-Open,然后打开Tutorial文件夹中的dataview文件NESOUTHV.DVW ? 单击Population字段名并单击来按人口升序排列各县 ? 单击State字段名并按住Shift键单击[HHMedian Income]字段名

武汉理工大学算法分析实验报告

学生实验报告书 实验课程名称算法设计与分析开课学院计算机科学与技术学院 指导教师姓名李晓红 学生姓名 学生专业班级软件工程zy1302班2015-- 2016学年第一学期

实验课程名称:算法设计与分析 同组者实验日期2015年10月20日第一部分:实验分析与设计 一.实验内容描述(问题域描述) 1、利用分治法,写一个快速排序的递归算法,并利用任何一种语言,在计算机上实现,同时 进行时间复杂性分析; 2、要求用递归的方法实现。 二.实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述) 本次的解法使用的是“三向切分的快速排序”,它是快速排序的一种优化版本。不仅利用了分治法和递归实现,而且对于存在大量重复元素的数组,它的效率比快速排序基本版高得多。 它从左到右遍历数组一次,维护一个指针lt使得a[lo..lt-1]中的元素都小于v,一个指针gt 使得a[gt+1..hi]中的元素都大于v,一个指针i使得a[lt..i-1]中的元素都等于v,a[i..gt]中的元素都还未确定,如下图所示: public class Quick3way { public static void sort(Comparable[] a, int lo, int hi) { if (lo >= hi) return; int lt = lo, i = lo + 1, gt = hi; Comparable pivot = a[lo];

第二部分:实验调试与结果分析 一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等) 1、调试方法描述: 对程序入口进行断点,随着程序的运行,一步一步的调试,得到运行轨迹; 2、实验数据: "R", "B", "W", "W", "R", "W", "B", "R", "R", "W", "B", "R"; 3、实验现象: 4、实验过程中发现的问题: (1)边界问题: 在设计快速排序的代码时要非常小心,因为其中包含非常关键的边界问题,例如: 什么时候跳出while循环,递归什么时候结束,是对指针的左半部分还是右半部分 排序等等; (2)程序的调试跳转: 在调试过程中要时刻记住程序是对那一部分进行排序,当完成了这部分的排序后, 会跳到哪里又去对另外的那一部分进行排序,这些都是要了然于心的,这样才能准 确的定位程序。 二、实验结果分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等) 1、实验结果:

TRANScad软件实验报告

TransCAD软件应用实验报告学号 :10030501-21 姓名: XX 实验日期: 2013.12 一.实验目的与要求 1.1实验目的: 《交通规划》是交通工程专业学位课,实践环节是该课程的重 要组成部分。本次实验报告的主要目的旨在从应用角度出发,通过 对交通规划软件的学习和使用,公共和加深对交通规划理论的理解,熟悉实际交通规划的步骤和方法,为今后从事相关工作或者进一步 学习打下良好基础。实验的主要目的是使用交通规划软件TransCAD 进行长沙市政府周边区域的OD 反推,其中主要包括以下两点: 1)能够在指导下安装交通规划软件transCAD,熟悉软件的操作界面和主要功能。 2)能够应用软件进行简单的规划设计,包括导入规划区域背景图、建立路网图、建立交通区图等,能够输出结果并进行简单分析。 1.2实验要求任务: 1. 线层路网文件 2. 面层交通区文件 3. 交通分布的两个OD 矩阵文件

4. 交通分配结果 5. 分析及总结报告(简单的工作过程、交通分布结果、交通分配结果、分析讨论、疑问、心得体会等) 二.实验的主要内容 2.1 学习交通规划软件TransCAD 的操作方法 1、了解交通规划软件的作用;了解TransCAD 的软件结果与主要功能;熟悉TransCAD 的工作模式。 2、学习使用TransCAD 进行交通网络编辑的基本方法,主要包括结点、路段和小区的处理方法、属性 数据的描述等。 3、掌握使用TransCAD 进行OD 反推,以及数据保存与转换方法。 4、掌握使用TransCAD 进行交通分配。 2.2 构建城市中心区道路网络 利用CAD软件处理给定的道路,并以文件类型选择“AutoCAD R1 2/LT2 DXF (*.dxf) 格式保存,命名为1234655,并将其导入trans CAD软件。并将其分为:路网层、小区层。

南京邮电大学算法设计实验报告——动态规划法

实验报告 (2009/2010学年第一学期) 课程名称算法分析与设计A 实验名称动态规划法 实验时间2009 年11 月20 日指导单位计算机学院软件工程系 指导教师张怡婷 学生姓名丁力琪班级学号B07030907 学院(系) 计算机学院专业软件工程

实验报告 实验名称动态规划法指导教师张怡婷实验类型验证实验学时2×2实验时间2009-11-20一、实验目的和任务 目的:加深对动态规划法的算法原理及实现过程的理解,学习用动态规划法解决实际应用中的最长公共子序列问题。 任务:用动态规划法实现求两序列的最长公共子序列,其比较结果可用于基因比较、文章比较等多个领域。 要求:掌握动态规划法的思想,及动态规划法在实际中的应用;分析最长公共子序列的问题特征,选择算法策略并设计具体算法,编程实现两输入序列的比较,并输出它们的最长公共子序列。 二、实验环境(实验设备) 硬件:计算机 软件:Visual C++

三、实验原理及内容(包括操作过程、结果分析等) 1、最长公共子序列(LCS)问题是:给定两个字符序列X={x1,x2,……,x m}和Y={y1,y2,……,y n},要求找出X和Y的一个最长公共子序列。 例如:X={a,b,c,b,d,a,b},Y={b,d,c,a,b,a}。它们的最长公共子序列LSC={b,c,d,a}。 通过“穷举法”列出所有X的所有子序列,检查其是否为Y的子序列并记录最长公共子序列并记录最长公共子序列的长度这种方法,求解时间为指数级别的,因此不可取。 2、分析LCS问题特征可知,如果Z={z1,z2,……,z k}为它们的最长公共子序列,则它们一定具有以下性质: (1)若x m=y n,则z k=x m=y n,且Z k-1是X m-1和Y n-1的最长公共子序列; (2)若x m≠y n且x m≠z k,则Z是X m-1和Y的最长公共子序列; (3)若x m≠y n且z k≠y n,则Z是X和Y的最长公共子序列。 这样就将求X和Y的最长公共子序列问题,分解为求解较小规模的问题: 若x m=y m,则进一步分解为求解两个(前缀)子字符序列X m-1和Y n-1的最长公共子序列问题; 如果x m≠y n,则原问题转化为求解两个子问题,即找出X m-1和Y的最长公共子序列与找出X 和Y n-1的最长公共子序列,取两者中较长者作为X和Y的最长公共子序列。 由此可见,两个序列的最长公共子序列包含了这两个序列的前缀的最长公共子序列,具有最优子结构性质。 3、令c[i][j]保存字符序列X i={x1,x2,……,x i}和Y j={y1,y2,……,y j}的最长公共子序列的长度,由上述分析可得如下递推式: 0 i=0或j=0 c[i][j]= c[i-1][j-1]+1 i,j>0且x i=y j max{c[i][j-1],c[i-1][j]} i,j>0且x i≠y j 由此可见,最长公共子序列的求解具有重叠子问题性质,如果采用递归算法实现,会得到一个指数时间算法,因此需要采用动态规划法自底向上求解,并保存子问题的解,这样可以避免重复计算子问题,在多项式时间内完成计算。 4、为了能由最优解值进一步得到最优解(即最长公共子序列),还需要一个二维数组s[][],数组中的元素s[i][j]记录c[i][j]的值是由三个子问题c[i-1][j-1]+1,c[i][j-1]和c[i-1][j]中的哪一个计算得到,从而可以得到最优解的当前解分量(即最长公共子序列中的当前字符),最终构造出最长公共子序列自身。

土地资源调查与评价实验一

实验一土地要素分析 1208140515 土资122班 张舵 一、实验目的 根据研究区域基础数据资料,分析地形、植被、土壤、土地利用方式等土地构成要素的空间演替的规律。 二、实验数据 1.北京市海淀区数字高程模型(DEM) 2.北京市海淀区土壤类型图(土壤.*) 3.北京市海淀区土地利用现状图(简化)(HDDLTB.*) 4.北京市海淀区“凤凰岭-稻香湖”样区条带遥感影像(Sat_DXH31.tif)

三、实验过程 1.将DEM由Raster转化为TIN 打开ArcMap10.2,点击加载实验数据,在Arc Toolbox中选择3D Analyst Tools→Conversion→From Raster→Raster to TIN(图1),输入栅格为DEM图层(图2),将数字高程模型(DEM)由栅格格式(Raster)转化为不规则三角网格式(TIN)(图3)。 图 1 Arc Toolbox工具栏 图 2 Raster to TIN窗口

图 3不规则三角网格式(TIN)的数字高程图 2.选择断面 将遥感影像图层置于所有图层顶端,在研究样区条带内,点击,选择一条东西向、横跨研究样区的断面,并用红线加粗显示(图4) 图4 断面位置示意图 断面在栅格中的具体位置如下图(图5) 图5断面栅格位置图 3.断面地形分析 (1)点击生成断面高程变化图,结合遥感影像进行地形判断。 (2)在Arc Toolbox中选择Spatial Analyst Tools→Surface→Contour,

把生成的TIN图作为输入图层,等值线高差为50米,生成等值线图,进行等值线分析。(图6) 图6等值线分析 4.地貌类型分析 在Arc Toolbox中选择Spatial Analyst Tools→Surface→Slope,把生成的TIN图作为输入图层,生成坡度图,与高程变化图、等值线图对照,分析地貌类型及其部位。 5.土壤类型和属性 在土壤类型图的图层属性中选择符号系统,值字段为土类,添加所有值,并将卵石滩值移除后确定(图7) 图7 土类图层属性表

算法设计与分析实验报告

本科实验报告 课程名称:算法设计与分析 实验项目:递归与分治算法 实验地点:计算机系实验楼110 专业班级:物联网1601 学号:2016002105 学生:俞梦真 指导教师:郝晓丽 2018年05月04 日

实验一递归与分治算法 1.1 实验目的与要求 1.进一步熟悉C/C++语言的集成开发环境; 2.通过本实验加深对递归与分治策略的理解和运用。 1.2 实验课时 2学时 1.3 实验原理 分治(Divide-and-Conquer)的思想:一个规模为n的复杂问题的求解,可以划分成若干个规模小于n的子问题,再将子问题的解合并成原问题的解。 需要注意的是,分治法使用递归的思想。划分后的每一个子问题与原问题的性质相同,可用相同的求解方法。最后,当子问题规模足够小时,可以直接求解,然后逆求原问题的解。 1.4 实验题目 1.上机题目:格雷码构造问题 Gray码是一个长度为2n的序列。序列无相同元素,每个元素都是长度为n的串,相邻元素恰好只有一位不同。试设计一个算法对任意n构造相应的Gray码(分治、减治、变治皆可)。 对于给定的正整数n,格雷码为满足如下条件的一个编码序列。 (1)序列由2n个编码组成,每个编码都是长度为n的二进制位串。 (2)序列中无相同的编码。 (3)序列中位置相邻的两个编码恰有一位不同。 2.设计思想: 根据格雷码的性质,找到他的规律,可发现,1位是0 1。两位是00 01 11 10。三位是000 001 011

010 110 111 101 100。n位是前n-1位的2倍个。N-1个位前面加0,N-2为倒转再前面再加1。 3.代码设计:

交通仿真transcad实验报告

《交通仿真技术与应用》课程实验报告 姓名: 学号: 实验一 实验名称:熟悉Transcad 地理文件编辑 实验内容: 实验结果: 2、 3、 4、 5、 6、 7、 导入背景图片 新建线类型地理文件(线层与点层) 编辑线类型地理文件 为路段图层输入属性数据 新建与编辑面类型地理文件 矩阵文件建立与数据导入 创建相应得专题地图

实验总结: 在这次试验中,我们掌握了面类型与线类型地理文件 得创建与编辑方法。理解地图与图层得概念,学会用样式、标注、图例等修饰地图。掌握数据表文件得创建与编辑方法。 理解表格、字段、记录得含义与关系,掌握将数据表连接到地图得方法。掌握矩阵文件得创建与编辑方法。学会如何导入、导出矩阵数据。掌握专题地图得制作方法,包括色彩专题图、点密度专题图、等级符号专题图以及期望线图等。 实验二 实验名称:用回归模型进行出行生成预测实验内容: 1、基础数据准备及录入 2、回归模型矣数估计 3、回归模型进行预测 4、平衡产生量与吸引量 5、出行生成结果预测分析 实验结果:

结M 成a : 回归预测模型得标定,检验其可靠性。 jicwjTp 1*1 - iSS 立 丽時 UM iPtiH Starting Rroccdurc Linear *odci Sdtitrotion with Re 缈88ion Vodcl on April 0& 2015 (08:39 PR) ~ * J 八 1 Records) Held Nane Icon Std Dev People 1083.35 S86? 868 GOP 52 5C00 21-6217 2343,83 113?. 4^ fiel4 id AJ^e Source df SS Hug SS P Ratio 恥4cl Z 5.58341WQ05 Z 694210006 1.48056 Error 3 1? 0a)48r?0Q6 360181. Total 5 & 4688904006 0.7216 R Squired = 0.8330 A4j R Squared = Held Nan? Bstinate Sid. Error 1 6tat awswm 826.664 Peapie -2- 91702 4? 20259 -0.69讹 1 GOP 98. TlOO 7 良19 L 31272 Execution Tine ess 00:G0:00.OOO Slft.ai 列 出行产生吸引预测值: ID| Ate^i Z(mclD| PcopkI 6DP| P B?e| A Bave| Peiipli *u ?i fiDP F?| P 』id A Fi?| 1 03A 1 500 20 1649 1758 550 30 2085 TIM 5 0.50 4 GOO 35 1948 1835 350 48 3012 3085 4 0.72 5 1100 55 2475 2364 1200 70 418? 4236 6 0.38 6 1300 60 2583 2645 1350 70 3813 3798 3 0.ZI 3 12U0 Gb 3888 3/93 I28U 80 4918 4990 2 0.91 2 1GU0 90 4753 4638 IrtJU 匸 lUUf 5732 5J39 进行产生吸引平衡之后得预测值: ID1 BALANCE2.P Fur BALANCE2.A Fui 1 2085031 2157.73 5 3012.14 3048.72 4 4186.81 4185.74 6 3813.00 3753.38 3 4917.86 4330,55 2 5732.01 5670.73 Q CO Field Nan? Pwopl? GDP P_pa£^ lean L083. 33 52. SCOO 2849.8$ 氏 field is P_B^c Source 廿 SS Iteai SS lo4tl 2 5.75345^4005 2? 876730006 Frror 3 1. 033l2rlC0G 34^040Total 5 & 7M57C400& D 8 2 ? ,? £vs *2 瞒 hw s P RalLO & 31328 0.7452 BstinaWe €$4.441 Held Nan? CONSTANT People -2-49212 COP 93.041$ EjfCwHon Tine gs 00:00:00. OGO Sid. Srror 4.11958 7S.?0W 1 stat Recress ion Model of for nJZone (All R Squared = 0.2<171 Adj R Squared =

实验报告

五尧乡生态乡镇建设规划 目录 1.总论 1.1任务的由来 (2) 1.2编制的依据 (2) 1.3规划指导思想 (2) 1.4规划原则 (2) 1.5规划年限 (3) 1.6规划目标 (3) 2.五尧乡基本状况 (4) 2.1五尧乡自然地理状况 (4) 2.2五尧乡社会经济状况 (4) 3.城镇规划 (4) 4.生态环境规划 (5) 4.1生态资源状况 (5) 4.2环境质量现状 (6) 4.3生态环境问题 (6) 4.4生态环境保护规划 (7) 5.效益分析 (9) 5.1生态效益 (9) 5.2经济效益 (9) 5.3社会效益 (9) 6.规划实施的保障措施 (9) 6.1政策法规保障体系 (10) 6.2组织机构与管理保障体系 (10) 6.3文化教育和社会监督体系 (11) 6.4资金筹措与投资保障体系 (11) 6.5实施手段与技术保障体系 (12) 6.6决策支持信息系统体系 (12)

1.总论 1.1任务的由来 随着经济的迅速发展,以及城市的逐渐扩张,我国进入了一个中国城市化和城市高速发展的关键时期。而小城镇的发展在我国城市化进程中,正在发挥着越来越重要的作用。自1998 年党的十五届三中全会确定了“小城镇,大战略”的方针后,党的十六大又进一步把“加快城镇化进程,全面建设小康社会,走中国特色的城镇化道路”作为战略目标。“建立和谐社会,达到全社会的和谐发展”,是党的十六大报告提出的一个新的重要思想。党的十六届四中全会明确提出构建社会主义和谐社会的新命题,进一步深化和拓展了“社会更加和谐”这一思想。加快统筹城乡发展的步伐,解决“三农”问题,切实保护广大农民的利益是构建社会主义和谐社会的一个重要方面,而加快发展小城镇则是统筹城乡、解决“三农问题”、构建和谐社会的关键之一。积极有序地发展小城镇,不仅是加快城市化进程的需要,而且已成为我国国家发展战略的重要组成部分。 1.2编制的依据 城市规划5个阶段,如果按编制规划的话可以说是:纲要、总体规划(城镇体系规划)、分区规划,修建性详细规划,控制性详细规划。 编制这5个阶段的规划的依据个不一样。当然首先都是以国家颁布实施的法律法规、方针政策为依据,城镇总体规划主要有: ⑴《中华人民共和国城乡规划法》 ⑵《中共中央国务院关于促进小城镇健康发展的若干意见》 ⑶《全国生态环境保护纲要》 ⑷《国民经济和社会发展纲要》 ⑸《国家环境保护“十二五”规划》 ⑹《河北省建制镇总体规划编制导则》 ⑺《保定市志》 ⑻《保定市城市总体规划(2008—2020年)》 ⑼《保定市土地利用总体规划(2010-2020)》 ⑽《五尧乡国民经济统计资料及城建资料》 ⑾《五尧乡各类专业部门提供的规划基础资料》 1.3规划指导思想 本规划以生态化、集约化、市场化为理念,坚持突出五尧乡特色的原则,城乡经济和空间布局一体化发展的原则,土地使用集约化原则,规划弹性灵活的原则和建设精品化的原则。充分发挥城镇规划对城镇发展建设的战略性、前瞻性、综合性指导作用。 贯彻可持续发展战略,坚持环境与发展综合决策,努力解决小城镇建设与发展中的生态环境问题;坚持以人为本,以创造良好的人居环境为中心,加强城镇生态环境综合整治,努力改善城镇生态环境质量,实现经济发展与环境保护“双赢”。 1.4规划原则 ⑴区域协同发展的原则 融入区域环境,实现持续发展。五尧乡的发展必须在区域的框架内明确自身定位,发挥自身优势,实现快速发展。从广域范围内分析五尧乡的发展,增强规划的区域观念和整体竞争力,积极融入保定市新一轮发展之中,谋求以大区域为背景的城镇整体发展。

GIS实验报告材料-地信

地理信息系统原理实验报告 班级: 学号: 姓名: 指导教师:

一、实验目的 1熟悉桌面GIS软件Super Map的界面环境 2初步掌握Super Map的主要工具及菜单命令的使用 3理解GIS软件应具有的基本功能 4结合对所选地图的矢量化的操作,具体掌握GIS软件的操作步骤 二、实验时间 1、第八周----第十六周进行实验绘图实体操作 2、第十七周----第十九周进行图片剪切,资料整理,总结报告 三、实验内容 ●Supermap Deskpro的认识 Supermap Deskpro是超图的专业桌面GIS软件之一。Super Map GIS桌面平台产品是基于Super Map GIS核心技术研制开发的一体化的GIS桌面软件,是Super Map GIS系列产品的重要组成部分,它界面友好、简单易用,不仅可以很轻松地完成对空间数据的浏览、编辑、查询、制图输出等操作,而且还能完成拓扑分析、三维建模、空间分析、网络分析等较高级的 GIS 功能。 SuperMap Deskpro 是一款专业桌面GIS软件,提供了地图编辑、属性数据管理、分析与辅助决策相关业务以及输出地图、打印报表、三维建模等方面的功能。SuperMap Deskpro 作为一个全面分析管理的工具,应用于土地管理、林业、电力、电信、交通、城市管网、资源管理、环境分析、旅游、水利、航空和军事等所有需要地图处理行业。 ●Supermap Deskpro的使用 通过该软件进行地图的矢量化,具体过程如下:

1、前期的准备 数据来源:纸质西安地图 地图的整体设计:遵循地图越详细越好的原则,我们对点、线、面数据集作了详细的规划,详情请看图层分层。考虑到以后做专题图,对数据集属性字段做了必要的添加,用以区分不同的地物。 本地图特色:采用Deskpro软件自带的矢量符号库符号分别作点、线、面专题图。 2、地图矢量 2.1纸质地图的扫描扫描之前对地图进行图面整理,扫描的分辨率设为 300-500dpi,扫描后得到*.jpg格式的原始栅格数据的地图 2.2创建相应的坐标系数据源启动Deskpro选择新建工作空间。 新建数据源

相关文档
最新文档