实验报告:基于最短路径分析与应用

实验报告:基于最短路径分析与应用
实验报告:基于最短路径分析与应用

资源与环境科学学院实验报告

姓名:康强杰专业:地理信息系统年级:09级

学号:2009160217 评分日期:2012/4/6

上机实习名称:最短路径问题分析与应用

实习目的:

学会用ArcGIS9 进行各种类型的最短路径分析,了解内在的运算机理. 同时,研究交通网络中要素的设置如:权重的改变和阻强的设置对最短路径的选择也有着很大的影响,对于现实也有一定的指导意义。

实习原理:

任何一种网络分析功能或方法,都是在给定的条件和要求下,利用网络流向来寻求路线或服务区,该实验是基于ARCGIS中网络分析中几何网络的特征和属性,利用距离、权重和规划条件进行分析,得到结果并应用在实际中。

主要类型包括:

1、路径分析

最佳路径分析

N条最佳路径分析

最短路径

2、地址匹配

3、资源分配

实习步骤:

1.首先打开ArcMap选择E:\Chp7\Ex2\city.mdb,并加载整个数据集city,然后将place点状要

素以HOME 字段属性值进行符号化,1 值是家,0 值是超市。

2.然后分别进行:

(1)无权重最佳路径生成

1.1在设施网络分析工具条上,点选旗标和障碍工具板下拉箭头,将旗标放

在家和想去的超市点上。

1.2确认在Analysis下拉菜单中的Options按钮打开的Analysis Options对话框

中的weight和weight filt自身的长短来确定的。

1.3点选追踪工作(Track task)下拉菜单选择寻找路径(find path)。单击solve

键,则最短路径将显示出来,总成本将显示在状态列。

(2)加权最佳路径生成

2.1在设施网络分析工具条上,点选旗标和障碍工具板下拉箭头,将旗标放在家

和想去的某个超市点上。

2.2 选择Analysis下拉菜单,选择Option按钮,打开Analysis Option对话框,选

择Weight标签页,在边的权重(edge weight)上,全部选择长度(length)权重属性。

2.3 点选追踪工作(Track task)下拉菜单选择寻找路径(find path)。单击solve

键,则以长度为比重为基础的最短路径将显示出来,这条路径的总成本将显示在

状态列。

2.4 上述是通过距离的远近选择而得到的最佳路径,而不同类型的道路由于道路车

流量的问题,有时候要选择时间较短的路径,同样可以利用网络分析进行获得最佳

路径。

(3)按顺序逐个访问路径生成

3.1 在设施网络分析工具条上,点选旗标和障碍工具板下拉箭头,将旗标按照车

辆访问的顺序逐个放在点上。

3.2 选择Analysis下拉菜单,选择Option按钮,打开Analysis Option对话框,选择

Weight标签页,在边的权重(edge weight)上,全部选择长度(length)权重属性。

3.3 点选追踪工作(Track task)下拉菜单选择寻找路径(find path)。单击solve

键,则从起点按顺序逐一经过超市然后最后回到家的最短有效路径将显示出来,这

条路径的总成本将显示在状态列。

3.4 同样是经过这11个地点,换成权重是时间的,由于道路车流量的不同,如在市

中心车流量特别大,车速慢,故而为节约时间,所以使得路经发生很大的改变,而

从外围的道路行驶了。

( 4 )阻强问题

4.1 修路的情形出现,即某个路段不可运行,这在网络中的表现是设置阻强,方法

有两种,一种是永久性的,直接将网络边要素的属性修改成不可运行。操作是选择要

进行设置的边要素,将其属性中的Enabled字段改成False即可;另一种是暂时性的,

设置边要素障碍。即利用边要素障碍添加工具将边设置。取同上述距离加权相同的超

市为地点,假设其中一条路段正在修路,则产生的新的最佳路径如图18(图中标注“╳”

即为阻强设置边)。可以看出路段的维修状况使得最佳路径产生了改变,同时最近距

离也随之发生改变。

4.2 十字路口发生问题,即网络中的结点不可运行,这时在网络中的表现也是设置阻

强,方法和线状要素的一样,改变结点属性或利用点要素阻强添加工具将点设置,取

同上述距离加权相同的超市为地点,假设其中某个路口出现阻塞,利用该方法产生的

最佳路径。

实习结果:(文字描述、绘图)

(1)下图是:无权重最佳路径生成图

(2)下图是:有权重最佳路径生成2.1 距离加权最佳路径图

2.2时间加权最佳路径图

(3)按顺序逐个访问路径生成

3.1逐个目的地的路径的获得图

3.2 时间权重的路径的获得图

(4)阻强问题

4.1 有边阻强的距离最佳路径图

4.2有点阻强的距离最佳路径图

总结:结论、问题并加以讨论

1、自主学习:通过自主学习网络分析的相关理论知识

2、孰能生巧:跟着书上的操作步骤,我们完成了书上四个实验的操作。开始并不熟练,但是,通过录制视频之后,我们能够熟练些操纵。

3、兴趣是最好的老师:当看到我们的实验结果之后,大大的提高了我们对这个知识点的兴趣,我们上网查阅网络分析在现实中的相关应用。所谓,兴趣是最好的老师,我们觉得这种学习效率比听课的效率高多了。

4、局限性:拓展的局限性,由于时间的限制,我们没有其他的拓展只是书上的这些操作。以后,我们会进一步运用这个功能。

补充:最短路径分析可以应用于旅游决策支持系统,根据游客预计的旅游线路、经费、兴趣和爱好、旅游总时间、和消费标准等因素,按照旅游决策的最大的效益原则,花最小的资金和时间,获得尽量多的旅游体验

实验三 最短路径的算法(离散数学实验报告)

实验3:最短路径算法 一、实验目的 通过本实验的学习,理解Floyd(弗洛伊得)最短路径算法的思想 二、实验内容 用C语言编程实现求赋权图中任意两点间最短路径的Floyd算法,并能对给定的两结点自动求出最短路径 三、实验原理、方法和手段 1、Floyd算法的原理 定义:Dk[i,j] 表示赋权图中从结点vi出发仅通过v0,v1,┉,vk-1中的某些结点到达vj的最短路径的长度, 若从vi到vj没有仅通过v0,v1,┉,vk-1 的路径,则D[i,j]=∝即 D-1[i,j] 表示赋权图中从结点vi到vj的边的长度,若没有从结点vi到vj的边,则D[i,j]=∝ D0[i,j] 表示赋权图中从结点vi到vj的”最短”路径的长度, 这条路上除了可能有v0外没有其它结点 D1[i,j] 表示赋权图中从结点vi到vj的”最短”路径的长度, 这条路上除了可能有v0,v1外没有其它结点 ┉┉┉ 根据此定义,D k[i,j]=min{ D k-1[i,j] , D k-1[i,k-1]+D k-1[k-1,j] } 定义:path[i,j]表示从结点vi到vj的“最短”路径上vi的后继结点 四、实验要求 要求输出每对结点之间的最短路径长度以及其最短路径 五、实验步骤 (一)算法描述 Step 1 初始化有向图的成本邻矩阵D、路径矩阵path 若从结点vi到vj有边,则D[i,j]= vi到vj的边的长度,path[i,j]= i; 否则D[i,j]=∝,path[i,j]=-1 Step 2 刷新D、path 对k=1,2,┉n 重复Step 3和Step 4 Step 3 刷新行对i=1,2,┉n 重复Step 4 Step 4 刷新Mij 对j=1,2,┉n 若D k-1[i,k]+D k-1[k,j]

实验报告

算法与数据结构 实验报告 系(院):计算机科学学院 专业班级:软工11102 姓名:潘香杰 学号: 201104449 班级序号: 18 指导教师:詹泽梅老师 实验时间:2013.6.17 - 2013.6.29 实验地点:4号楼5楼机房

目录 1、课程设计目的...................................... 2、设计任务.......................................... 3、设计方案.......................................... 4、实现过程.......................................... 5、测试.............................................. 6、使用说明.......................................... 7、难点与收获........................................ 8、实现代码.......................................... 9、可改进的地方.....................................

算法与数据结构课程设计是在学完数据结构课程之后的实践教学环节。本实践教学是培养学生数据抽象能力,进行复杂程序设计的训练过程。要求学生能对所涉及问题选择合适的数据结构、存储结构及算法,并编写出结构清楚且正确易读的程序,提高程序设计基本技能和技巧。 一.设计目的 1.提高数据抽象能力。根据实际问题,能利用数据结构理论课中所学到的知识选择合适的逻辑结构以及存储结构,并设计出有效解决问题的算法。 2.提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。 3.初步了解开发过程中问题分析、整体设计、程序编码、测试等基本方法和技能。二.设计任务 设计一个基于DOS菜单的应用程序。要利用多级菜单实现各种功能。内容如下: ①创建无向图的邻接表 ②无向图的深度优先遍历 ③无向创建无向图的邻接矩阵 ④无向图的基本操作及应用 ⑤图的广度优先遍历 1.有向图的基本操作及应用 ①创建有向图的邻接矩阵 ②创建有向图的邻接表 ③拓扑排序 2.无向网的基本操作及应用 ①创建无向网的邻接矩阵 ②创建无向网的邻接表 ③求最小生成树 3.有向网的基本操作及应用 ①创建有向网的邻接矩阵 ②创建有向网的邻接表 ③关键路径 ④单源最短路径 三.设计方案 第一步:根据设计任务,设计DOS菜单,菜单运行成果如图所示:

自动控制根轨迹实验报告

实验三 根轨迹分析 一、实验目的: 1.熟悉零、极点对根轨迹的影响 2.组合典型环节按照题目完成相应曲线 二、实验内容 鱼鹰型倾斜旋翼飞机V-22既是一种普通飞机,又是一种直升机。当飞机起飞和着陆时,其发动机位置可以使V-22像直升机那样垂直起降,而在起飞后,它又可以将发动机旋转90度,切换到水平位置,像普通飞机一样飞行。在直升机模式下,飞机的高度控制系统如图所示。要求: (1) 概略绘出当控制器增益K1变化时的系统根轨迹图,确定使系统稳定的K1值范围; (2) 当取K1=280时,求系统对单位阶跃输入r(t)=l(t)的实际输出h(t),并确定系统的 超调量和调节时间(Δ=2%); (3) 当K1=280,r(t)=0时,求系统对单位阶跃扰动N (s )=1/s 的输出h n (t); (4) 若在R (s )和第一个比较点之间增加一个前置滤波器 G p (s)= 5 .05.15 .02 ++s s Matlab 指令如下 fenzi=[1 1.5 0.5]; fenmu=[1 0]; G1=tf(fenzi,fenmu) fenzi=[1]; fenmu=conv(conv([20 1],[10 1]),[0.5 1]); G2=tf(fenzi,fenmu) sys1=series(G1,G2) rlocus(sys1) sys2=feedback(280*sys1,1) step(sys2) sys3=feedback(G2,280*G1) step(sys3) G3=tf([0.5],[1 1.5 0.5]) sys4=series(G3,sys2) step(sys4)

MATLAB实验报告,遗传算法解最短路径以及函数最小值问题讲解

硕士生考查课程考试试卷 考试科目:MATLAB教程 考生姓名:考生学号: 学院:专业: 考生成绩: 任课老师(签名) 考试日期:20 年月日午时至时

《MATLAB 教程》试题: A 、利用MATLA B 设计遗传算法程序,寻找下图11个端点的最短路径,其中没有连接的端点表示没有路径。要求设计遗传算法对该问题求解。 a d e h k B 、设计遗传算法求解f (x)极小值,具体表达式如下: 3 21231(,,)5.12 5.12,1,2,3 i i i f x x x x x i =?=???-≤≤=? ∑ 要求必须使用m 函数方式设计程序。 C 、利用MATLAB 编程实现:三名商人各带一个随从乘船渡河,一只小船只能容纳二人,由他们自己划行,随从们密约,在河的任一岸,一旦随从的人数比商人多,就杀人越货,但是如何乘船渡河的大权掌握在商人手中,商人们怎样才能安全渡河? D 、结合自己的研究方向选择合适的问题,利用MATLAB 进行实验。 以上四题任选一题进行实验,并写出实验报告。

选择题目: A 一、问题分析(10分) 1 4 10 11 如图如示,将节点编号,依次为 1.2.3.4.5.6.7.8.9.10.11,由图论知识,则可写出其带权邻接矩阵为: 0 2 8 1 500 500 500 500 500 500 500 2 0 6 500 1 500 500 500 500 500 500 8 6 0 7 500 1 500 500 500 500 500 1 500 7 0 500 500 9 500 500 500 500 500 1 500 500 0 3 500 2 500 500 500 500 500 1 500 3 0 4 500 6 500 500 500 500 500 9 500 4 0 500 500 1 500 500 500 500 500 2 500 500 0 7 500 9 500 500 500 500 500 6 500 7 0 1 2 500 500 500 500 500 500 1 500 1 0 4 500 500 500 500 500 500 500 9 2 4 0 注:为避免计算时无穷大数吃掉小数,此处为令inf=500。 问题要求求出任意两点间的最短路径,Floyd 算法采用的是在两点间尝试插入顶点,比较距离长短的方法。我思考后认为,用遗传算法很难找到一个可以统一表示最短路径的函数,但是可以对每一对点分别计算,然后加入for 循环,可将相互之间的所有情况解出。观察本题可发现,所有节点都是可双向行走,则可只计算i 到j 的路径与距离,然后将矩阵按主对角线翻折即可得到全部数据。 二、实验原理与数学模型(20分) 实现原理为遗传算法原理: 按所选择的适应度函数并通过遗传中的复制、交叉及变异对个体进行筛选,使得适应度高的个体被保留下来,组成新的群体,新的群体既继承了上一代的信息,又优于上一代。这样周而复始,群体中个体适应度不断提高,直到满足一定的条件。 数学模型如下: 设图G 由非空点集合12{,...}n V V V V = 和边集合12{,...}m E e e e = 组成,其中121221(,)e ,P ,)(P ,P ), i i i i i i i i e P P E P =∈≠且若(则G 为一个有向图; 又设i e 的值为i a ,12{,...},m A a a a = 故G 可表示为一个三元组{,,}G P E A = 则求最短路径的数学模型可以描述为:

甘特图实验报告doc

甘特图实验报告 篇一:Project实验报告 Project实验报告 朱曦朦 学号:XX306202412信管1001 实验目的: 通过做出一个标准的实验,了解project的基本运用方法和实验步骤,掌握设定项目的开始日期的基本方法。完成资源的优化配置,实现资源的充分利用。并对工期做一个初步的调整, 提高估计工期的精确度,掌握PERT的方法,实现整个过程(本文来自:https://www.360docs.net/doc/742045121.html, 小草范文网:甘特图实验报告)的最优配置。对甘特图,关键路径等基本定义有一个初步的了解,初步学习到PROJECT的基本内容。 一;定义起始时间: 在定义项目中进行时间的确认: 一直保存至第三步,进行初始化的设定。 二复制新产品模板. 三调整资源的最大单位 修改资源“产品工程设计”的最大单位为200%,并增加资源“生产线”(工时资源,100%,用于完成生产任务,原来工程师需要5小时完成的任务,生产线只要1小时就能完

成,但必须同时配1名产品工程设计进行监控)。 通过视图进入资源工作表,将“产品工程设计”的最大单位改为 200% 在甘特图中未找到工程师,所以未对其进行修改。 三.为了提高估计工期的精确度,采用PERT技术规划项目工期(选取2到3个任务进行规划)。 设置PERT权重 设置后观察得到PERT项工作表。 选取2,3个项目后确定乐观工期,预期工期,悲观工期,通过计算PERT得出结论。 四.分析项目工期由哪些任务决定,确定压缩工期的方法。通过格式中的甘特图向导,对关键路径进行确认,从而得到确定项目工期的任务,由红线显示。编号为2,3,5,6,8,9,10, 11 对项目进行优化,可以通过2种路径,一是调整关键路径的工期,将其缩短。二是删除原有的链接关系,将后面的工期开始时间提前,如下图所示。 篇二:MS Project 上机实验报告 MS Project 上机实验报告 一、工程概况

自控实验报告实验三 线性系统的根轨迹

实验三 线性系统的根轨迹 一、实验目的 1. 熟悉MATLAB 用于控制系统中的一些基本编程语句和格式。 2. 利用MATLAB 语句绘制系统的根轨迹。 3. 掌握用根轨迹分析系统性能的图解方法。 4. 掌握系统参数变化对特征根位置的影响。 二、实验报告 1.根据内容要求,写出调试好的MATLAB 语言程序,及对应的结果。 2. 记录显示的根轨迹图形,根据实验结果分析根轨迹的绘制规则。 3. 根据实验结果分析闭环系统的性能,观察根轨迹上一些特殊点对应的K 值,确定闭环系统稳定的范围。 4.写出实验的心得与体会。 三、实验内容 请绘制下面系统的根轨迹曲线同时得出在单位阶跃负反馈下使得闭环系统稳定的K 值的范围。 一、 ) 136)(22()(2 2 ++++=s s s s s K s G 1、程序代码: G=tf([1],[1,8,27,38,26]); rlocus (G); [k,r]=rlocfind(G) G_c=feedback(G,1); step(G_c) 2、实验结果:

-8-6 -4 -2 24 6 8 Root Locus Real Axis I m a g i n a r y A x i s selected_point = -8.8815 + 9.4658i k = 1.8560e+04 r = -10.2089 + 8.3108i -10.2089 - 8.3108i 6.2089 + 8.2888i 6.2089 - 8.2888i Time (seconds) A m p l i t u d e selected_point = -9.5640 - 7.6273i k = 1.3262e+04 r = -9.5400 + 7.6518i -9.5400 - 7.6518i 5.5400 + 7.6258i 5.5400 - 7.6258i Time (seconds) A m p l i t u d e

《数据结构课程设计》最短路径问题实验报告

《数据结构课程设计》最短路径问题实验报告

目录 一、概述 0 二、系统分析 0 三、概要设计 (1) 四、详细设计 (5) 4.1建立图的存储结构 (5) 4.2单源最短路径 (6) 4.3任意一对顶点之间的最短路径 (7) 五、运行与测试 (8) 参考文献 (11) 附录 (12)

交通咨询系统设计(最短路径问题)一、概述 在交通网络日益发达的今天,针对人们关心的各种问题,利用计算机建立一个交通咨询系统。在系统中采用图来构造各个城市之间的联系,图中顶点表示城市,边表示各个城市之间的交通关系,所带权值为两个城市间的耗费。这个交通咨询系统可以回答旅客提出的各种问题,例如:如何选择一条路径使得从A城到B城途中中转次数最少;如何选择一条路径使得从A城到B城里程最短;如何选择一条路径使得从A城到B城花费最低等等的一系列问题。 二、系统分析 设计一个交通咨询系统,能咨询从任何一个城市顶点到另一城市顶点之间的最短路径(里程)、最低花费或是最少时间等问题。对于不同的咨询要求,可输入城市间的路程、所需时间或是所需费用等信息。 针对最短路径问题,在本系统中采用图的相关知识,以解决在实际情况中的最短路径问题,本系统中包括了建立图的存储结构、单源最短问题、对任意一对顶点间最短路径问题三个问题,这对以上几个问题采用了迪杰斯特拉算法和弗洛伊德算法。并未本系统设置一人性化的系统提示菜单,方便使用者的使用。

三、概要设计 可以将该系统大致分为三个部分: ①建立交通网络图的存储结构; ②解决单源最短路径问题; ③实现两个城市顶点之间的最短路径问题。

迪杰斯特拉算法流图:

project项目管理实验报告

计算机辅助项目管理 课程报告 班级: 学号: 姓名: 指导教师: 完成日期: -

目录 1、项目概况 (2) 1.1项目简介 (3) 1.2项目任务关系、固定成本及资源需求量 (2) 1.3可用资源 (2) 2、项目的实施计划 (3) 2.1初始计划 (3) 2.2初始计划的调整和优化 (5) 3、跟踪监控 3.1第一轮监控 (7) 3.2第二轮监控 (21) 3.3第三轮监控 (25) 3.4第四轮监控 (25) 4、项目完工总结分析报告 4.1总结分析报告 (26) 4.2分析实施和管理的成效 (26) 4.3目标实现措施的分析 (26) 5.学习思考总结 5.1问题思考 (27) 5.2问题分析与总结 (28) PROJECT项目管理课程报告

1、项目概况 1.1项目简介 项目的主要工作是维修某主要道路下一段长约1公里的供水管道,市政局要求电力部门配合施工,同时铺设一条地下电缆,以增加该道路两侧的用电用户。由于该项目是在现有道路上开挖,故市政局决定在回填后顺便铺设新的混凝土路面。为此,专门成立了一个项目管理办公室,以管理、协调该项目。项目内容包括:供水工程、电力工程和道路工程。整个项目从2016年7月1日提交预算报批为开始,市政局希望将项目施工对公众造成的影响降至最低,故希望该项目能在2016年10月底竣工并恢复交通。 1.2项目任务关系、固定成本及资源需求量 项目各项任务逻辑关系及固定成本(设备费、材料费等)、资源需求量如表1。 表1 工程工艺关系、固定成本及所需资源表 编号工序名称固定 成本 紧前 工序 资源需求 技工壮工 人数工日人数工日 1 道路及配套工程 2 准备工作 3 预算报批5000 4 对外公告1500 3 5 开走路上停留 的车辆 2000 4 3 6 6 开挖槽沟50000 5 15 200 7 供水工程5000 8 维修水管50000 6 12 200 35 500 9 压力试验1500 8 5 10 10 电力工程 11 支设新电杆15000 5 5 50 10 75 12 铺设电缆50000 6 8 50 25 150 13 吊装变压器75000 11,12,16 15 100 25 250 14 电力入户25000 13 20 240 20 240 15 道路工程25000 16 剪除树枝1500 5 6 12 17 复铺路面150000 9,12 20 300 30 420 18 恢复交通14,17 预算报批需1周,对外公告需2周时间。 1.3可用资源

根轨迹分析实验报告

. 课程名称:控制理论乙指导老师:成绩: 实验名称:控制系统的根轨迹分析实验类型:同组学生姓名: 一、实验目的和要求(必填)二、实验内容和原理(必填) 三、主要仪器设备(必填)四、操作方法和实验步骤 五、实验数据记录和处理六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 1.掌握用计算机辅助分析法分析控制系统的根轨迹 2.熟练掌握Simulink仿真环境 二、实验内容和原理 1.实验内容 一开环系统传递函数为 k(s?2)?s)G(22(s?4s?3)绘制出此闭环系统的根轨迹,并分析系统的稳定性。 2.实验原理 根轨迹是指,当开环系统某一参数(一般来说,这一参数选作开环系统的增益k)从零变到无穷大时,死循环系统特征方程的根在s平面上的轨迹。因此,从根轨迹,可分析系统的稳定性、稳态性能、动态性能。同时,对于设计系统可通过修改设计参数,使闭环系统具有期望的零极点分布,因此根轨迹对系统设等。pzmap,rlocus,rlocfind计也具有指导意义。在MATLAB中,绘制根轨迹有关的函数有:3.实验要求 (1)编制MATLAB程序,画出实验所要求根轨迹, 求出系统的临界开环增益,并用闭环系统的冲击响应证明之。 (2)在Simulink仿真环境中,组成系统的仿真框图,观察临界开环增益时系统单位阶跃响应曲线并记录之。三、主要仪器设备 仿真环境simulink计算机一台以及matlab软件,四、实验源代码 >> A=[1 2]; >> B=conv([1 4 3],[1 4 3]); >> G=tf(A,B) G = s + 2 ------------------------------- s^4 + 8 s^3 + 22 s^2 + 24 s + 9 Continuous-time transfer function. >> figure

最短路径实验报告

一、实验目的 学习掌握图的存储结构 利用最短路径算法,通过java编程实现最短路径输出。 二、实验环境 Eclipse平台 三、实验过程 最短路径算法问题是计算机科学、运筹学、地理信息系统和交通诱导、导航系统等领域研究的一个热点。传统的最短路径算法主要有Floyd算法和Dijkstra算法。Floyd 算法用于计算所有结点之间的最短路径。Dijkstra算法则用于计算一个结点到其他所有结点的最短路径。本程序利用Dijkstra算法用java语言实现最短路径的可视化。 流程: 画无向邻接矩阵邻接矩阵初始化求取最短路径 Java文件如下 M ain.java 文件: import java.awt.BorderLayout; import java.awt.Color; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.StringTokenizer; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.TitledBorder; public class Main { public static void main(String args[]) { new UI("最短路径"); } } @SuppressWarnings("serial") class UI extends JFrame implements ActionListener, ItemListener { JFrame frame; JButton button;

关键路径的查找实验报告

中国矿业大学矿业工程学院 实验报告 课程名称计算机软件设计基础 姓名 xxxx 班级采矿10-8班学号 xxxxx 日期 2012年10月 成绩教师 xxxx

3.2算法步骤:

(1)输入e条弧,建立AOE网的存储结构。 (2)从源点v1出发,令ve(1)=0,求ve(j),2<=j<=n。 (3)从汇点vn出发,令vl(n)=ve(n),求vl(i) 1<=i<=n-1。 (4)根据各顶点的ve和vl值,求每条弧s(活动)的最早开始时间e(s)和最晚开始时间l(s),其中e(s)=l(s)的为关键活动。 总结 首先,关于程序方面,我发现即使对设计思路有了眉目,知道了所要用到的数据结构、用邻接表来存储AOE-网、建立栈来求拓扑序列、输出的拓扑序列的个数少于节点数则有回路等等,要把这些方法写成函数代码,其实还是一件非常不容易的事情。再加上要完善设计思路,构造整个程序框架在内,都是一件工作量非常大的工作。 在处理程序代码的时候,有两个问题始终解决不了。一是程序输入时只能输入整形数据,而非整形的输入则会导致程序异常停止,但是因为整形的输入方式已贯穿整个程序,若要修改只能另外重做整个程序,所以暂不考虑修改,而打算做一个判错系统,判断若非整形的输入则报错;二是第一种错误的解决方案未能成功实行,于网路上搜索到了几种判断是否为整形数据的程序代码,但将其修改融合到求关键路径的程序中,虽然没有错误可以运行,但是却不能正确的报错。 于是,在尝试多种方案却仍不成功的前提下,我只好选择加上提示语,即:printf("请输入某项目的信息,并请用整形数字表示(格式:弧头,

00实验三 基于MATLAB的根轨迹绘制与性能分析

实验四基于MATLAB的根轨迹绘制与性能分析 [实验目的] 1.掌握MATLAB下的根轨迹绘制方法; 2.学会利用根轨迹进行系统分析。 [实验指导] 1.根轨迹作图函数(命令):rlocus( ) 调用格式: ①rlocus(sys) 或rlocus(num,den) ②rlocus(sys,k) ①②画根轨迹图,①变化参量(一般是根轨迹增益)范围系统自动给出; ②变化参量(一般是根轨迹增益)范围在程序中给出; ③r=rlocus(sys) ④ [r,k]=rlocus(sys) ③④不画根轨迹图,③返回闭环根向量;④返回闭环根向量(r)和变化参量(k)。 2.根与根轨迹增益的求取 ⑴在根轨迹上点击,可得到该点的根值和对应的根轨迹增益值。 ⑵使用计算给定根的根轨迹增益的函数(命令):rlocfind( ) 调用格式: ①[k,poles]=rlocfind(sys) ②[k,poles]= rlocfind(sys,p) 使用方法:

①首先,当前根轨迹已绘出。运行该命令时,在根轨迹图中显示出十字光标,当用户选择其中一点时,其相应的增益由k 记录,与增益相关的所有极点记录poles 中;同时,在命令行窗口显示出来。 ②事先事先给出极点p ,运行该命令时,除了显示出该根对应的增益以外,还显示出该增益对应的其它根。 3.开环零点极点位置绘图函数(命令): pzmap( ) 调用格式: ① pzmap(sys) ② [p,z]=pzmap(sys) 函数功能: 给定系统数学模型,作出开环零点极点位置图。 ① 零点极点绘图命令。零点标记为“+”,极点标记为“o”。 ② 返回零点极点值,不作图。 4.根轨迹渐进线的绘制 当根轨迹渐进线与实轴的交点σa 已求出后,可得到方程11()n m a K s σ-=--, 这是根轨迹渐进线的轨迹方程。 将1()() n m a K G s s σ-= -作为一个开环传递函数,录入到MATLAB 中,再使用根 轨迹作图函数(命令)rlocus( ),生成的轨迹就是原根轨迹的渐进线。 5.举例 例1:开环传递函数1 ()(1)(2) K G s s s s =++绘制其闭环根轨迹。 程序: >> z=[];p=[0,-1,-2];k=1;sys=zpk(z,p,k);rlocus(sys) 运行结果:

MATLAB的根轨迹分析

基于MA TLAB 的根轨迹分析 一.实验目的: 1.学习利用MATLAB 的语言绘制控制系统根轨迹的方法。 2.学习利用根轨迹分析系统的稳定性及动态特性。 二.实验内容: 1.应用MATLAB 语句画出控制系统的根轨迹。 2.求出系统稳定时,增益k 的范围。 3.分析系统开环零点和极点对系统稳定性的影响。 三.实验步骤 1.给定某系统的开环传递函数G(s)H(s)=k/s(s*s+4s+16),用MATLAB 与语言绘出该系统的根轨迹。 程序如下: num=[1]; den=[1,4,16,0]; G=tf(num,den) G1=zpk(G) Z=tzero(G) P=pole(G) pzmap(num,den); title('pole-zero Map') rlocus(num,den) 根轨迹如图 -12-10-8-6-4 -2024-10-8 -6 -4 -2 024 6 8 10 Root Locus Real Axis I m a g i n a r y A x i s

结论:由上图可知增益k 的取值范围:0

最短路径实验报告

云南财经大学信息学院学生综合性与设计性实验报告 (2013—2014 学年第 2 学期) 周次:第7周日期:2014年 4 月 17 日地点: 一、实验内容与目的 1.内容 查看“最短路径.swf”,选择熟悉的程序设计语言定义有向图,根据动画演示求取从有向图任一结点到其他结点的最短路径。 2.实验目的 了解最短路径的概论,掌握求最短路径的方法。 二、实验原理或技术路线(可使用流程图描述) 实验原理:(李燕妮负责设计,周丽琼负责编程) 图是由结点的有穷集合V和边的集合E组成,求最短路径用迪杰斯特拉算法: 1)适用条件&范围: a) 单源最短路径(从源点s到其它所有顶点v); b) 有向图&无向图(无向图可以看作(u,v),(v,u)同属于边集E的有向图) c) 所有边权非负(任取(i,j)∈E都有Wij≥0); 2)算法描述: a)初始化:dis[v]=maxint(v∈V,v≠s); dis[s]=0; pre[s]=s; S={s}; b)For i:=1 to n 1.取V-S中的一顶点u使得dis[u]=min{dis[v]|v∈V-S}

2.S=S+{u} 3.For V-S中每个顶点v do Relax(u,v,Wu,v) c)算法结束:dis[i]为s到i的最短距离;pre[i]为i的前驱节点 三、实验环境条件(使用的软件环境) Microsoft Visual C++6.0 四、实验方法、步骤(列出程序代码或操作过程) /*本程序的功能是求图中任意两点间的最短路径*/ #include #include #include #include #define ING 9999 typedef struct ArcCell{ int adj; /*顶点关系类型,用1表示相邻,0表示不相邻*/ }ArcCell,**AdjMatrix; /*邻接矩阵*/ typedef struct type{ char data[3]; /*顶点值*/ }VertexType; typedef struct{ VertexType *vexs; /*顶点向量*/ AdjMatrix arcs; /*邻接矩阵*/ int vexnum,arcnum; /*图的顶点数和边数*/ }MGraph; /*初始图*/ void InitGraph(MGraph *G) { int i,nu,mu; printf("\n输入顶点的个数和(边)弧的个数:"); scanf("%d %d",&nu,&mu); G->arcs=(ArcCell **)malloc(nu*sizeof(ArcCell *)); for(i=0;iarcs[i]=(ArcCell *)malloc(nu*sizeof(ArcCell)); G->vexs=(VertexType *)malloc(nu*sizeof(VertexType)); /*分配顶点空间*/ G->vexnum=nu;G->arcnum=mu; /*图的顶点数和边数*/ }

Project实验报告

Project实验报告 朱曦朦 学号:2010306202412 信管1001 实验目的: 通过做出一个标准的实验,了解project的基本运用方法和实验步骤,掌握设定项目的开始日期的基本方法。完成资源的优化配置,实现资源的充分利用。并对工期做一个初步的调整, 提高估计工期的精确度,掌握PERT的方法,实现整个过程的最优配置。对甘特图,关键路径等基本定义有一个初步的了解,初步学习到PROJECT的基本内容。 一;定义起始时间:

在定义项目中进行时间的确认: 一直保存至第三步,进行初始化的设定。二复制新产品模板.

三调整资源的最大单位 修改资源“产品工程设计”的最大单位为200%,并增加资源“生产线”(工时资源,100%,用于完成生产任务,原来工程师需要5小时完成的任务,生产线只要1小时就能完成,但必须同时配1名产品工程设计进行监控)。 通过视图进入资源工作表,将“产品工程设计”的最大单位改为200% 在甘特图中未找到工程师,所以未对其进行修改。

三.为了提高估计工期的精确度,采用PERT技术规划项目工期(选取2到3个任务进行规划)。 设置PERT权重 设置后观察得到PERT项工作表。 选取2,3个项目后确定乐观工期,预期工期,悲观工期,通过计算PERT得出结论。

四.分析项目工期由哪些任务决定,确定压缩工期的方法。通过格式中的甘特图向导,对关键路径进行确认,从而得到确定项目工期的任务,由红线显 示。编号为2,3,5,6,8,9,10,11 的链接关系,将后面的工期开始时间提前,如下图所示。

实验总结: 通过按要求做实验,初步掌握的project的基本方法,但大部分还是按照书本的内容照搬,自己缺乏独立的融会贯通并将只是运用到实际甘特图中,并且,在有一些需要拓展的部分自己还是缺乏想法,没能很好地掌握知识。后面还需要多加练习,对制图还有一定的兴趣,但还是缺乏足够的训练。

自动控制原理-线性系统的根轨迹实验报告

线性系统的根轨迹 一、 实验目的 1. 熟悉MATLAB 用于控制系统中的一些基本编程语句和格式。 2. 利用MATLAB 语句绘制系统的根轨迹。 3. 掌握用根轨迹分析系统性能的图解方法。 4. 掌握系统参数变化对特征根位置的影响。 二、 实验容 1. 请绘制下面系统的根轨迹曲线。 ) 136)(22()(22++++=s s s s s K s G ) 10)(10012)(1()12()(2+++++=s s s s s K s G )11.0012.0)(10714.0()105.0()(2++++= s s s s K s G 同时得出在单位阶跃负反馈下使得闭环系统稳定的K 值的围。 2. 在系统设计工具rltool 界面中,通过添加零点和极点方法,试凑出上述系统,并 观察增加极、零点对系统的影响。 三、 实验结果及分析 1.(1) ) 136)(22()(22++++=s s s s s K s G 的根轨迹的绘制: MATLAB 语言程序: num=[1];

den=[1 8 27 38 26 0]; rlocus(num,den) [r,k]=rlocfind(num,den) grid xlabel('Real Axis'),ylabel('Imaginary Axis') title('Root Locus') 运行结果: 选定图中根轨迹与虚轴的交点,单击鼠标左键得: selected_point = 0.0021 + 0.9627i k = 28.7425 r = -2.8199 + 2.1667i -2.8199 - 2.1667i -2.3313 -0.0145 + 0.9873i

根轨迹分析实验报告

课程名称: 控制理论乙 指导老师: 成绩: 实验名称: 控制系统的根轨迹分析 实验类型: 同组学生姓名: 一、实验目的和要求(必填) 二、实验容和原理(必填) 三、主要仪器设备(必填) 四、操作法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 1. 掌握用计算机辅助分析法分析控制系统的根轨迹 2. 熟练掌握Simulink 仿真环境 二、实验容和原理 1. 实验容 一开环系统传递函数为 22) 34()2()(+++=s s s k s G 绘制出此闭环系统的根轨迹,并分析系统的稳定性。 2. 实验原理 根轨迹是指,当开环系统某一参数(一般来说,这一参数选作开环系统的增益k )从零变到无穷大时,死循环系统特征程的根在s 平面上的轨迹。因此,从根轨迹,可分析系统的稳定性、稳态性能、动态性能。同时,对于设计系统可通过修改设计参数,使闭环系统具有期望的零极点分布,因此根轨迹对系统设计也具有指导意义。在MATLAB 中,绘制根轨迹有关的函数有:rlocus ,rlocfind ,pzmap 等。 3. 实验要求 (1)编制MATLAB 程序,画出实验所要求根轨迹, 求出系统的临界开环增益,并用闭环系统的冲击响应证明之。 (2)在Simulink 仿真环境中,组成系统的仿真框图,观察临界开环增益时系统单位阶跃响应曲线并记录之。 三、主要仪器设备 计算机一台以及matlab 软件,simulink 仿真环境 四、实验源代码 >> A=[1 2]; >> B=conv([1 4 3],[1 4 3]); >> G=tf(A,B) G = s + 2 ------------------------------- s^4 + 8 s^3 + 22 s^2 + 24 s + 9 Continuous-time transfer function. >> figure >> pzmap(G)

最短路径_Dijkstra算法__实验报告

实验六:编程实现Dijkstra 算法求最短路问题. 1.需求分析: 首先让用户输入一个带权的有向图,输入时可通过一对一对输入存在弧的两个弧头与弧尾顶点以及弧上的权值从而输入整个有向图。用户输入一对对弧后,我们可以采用数组的形式来进行存储每个顶点之间的权值,最后由用户输入该有向图的源点(即每个最短路径的起点),要求源点必须为刚才输入的各顶点中的某一个,如果用户输入错误,程序要给出错误信息提示并退出程序。然后,我们可以设计一个Graph这样的类,将对关系的各种操作放入其中,然后我们在主函数中调运这个类就可以实现最短路问题的求解了。 2.概要设计: ①.构造一个新的类Graph: class Graph { private: int arcs[MAX][MAX],Path[MAX][MAX],D[MAX]; int arcnum,vexnum,weight,v0; Type a,b,vexs[MAX]; public: void Creat_Graph(); void Show_ShortestPath(); void ShortestPath_DIJ(); }; ②.结构化调用类中方法的主函数: int main() { Graph G; G.Creat_Graph(); G.ShortestPath_DIJ(); G.Show_ShortestPath(); return 0; } 3.代码实现: #include #define MAX 100 #define INFINITY INT_MAX enum BOOL{FALSE,TRUE}; using namespace std; template class Graph {

网络计划实验报告

PERT 实验 商业中心建设活动持续时间表 活动紧前活动需要时间(周) A 设计-20 B 批准-10 C 招标A, B8 D 建设C24 E 外装修D8 F 谈判A,B14 G 签约F10 H 区域分割D, G6 I 内装修H12 J 进驻I, E6 正常正常加急加急最大成本/时间 时间成本时间成本减少比率 A*203012808 6.25 B101010100- C*8106162 3.0 D*24 230020 2340410.0 E8110 4 1204 2.5 F141210204 2.0 G1*******- H* 6202254 1.25 I* 12160101702 5.0 J*6106100- 根据以上表格给出的信息,用PERT软件画出项目网络计划图,并进行网络计算与优化设计。

网络计划方法: 大型项目的开发涉及很复杂的项目协调和管理问题,为使项目管理人员对项目进度有全面的了解,进行有效的控制,必须使用科学的管理方法;网络计划法是使用最广泛的方法之一,关键路径法(critical path method 缩写为CPM)和项目评审技术(program evaluation and review technique 缩写为PERT)是两种使用最广泛的网络计划技术。网络计划方法的优点使它适用于生产技术复杂,工作项目繁多,且紧密联系的一些跨部门的工作计划,如:新产品研制开发;大型工程项目建设;生产技术准备;复杂设备的大修计划。 网络计划方法的基本原理: 将工程项目分解为相对独立的活动,根据各活动先后顺序、相互关系以及完成所需时间做出反映项目全貌的网络图;从项目完成全过程着眼,找出影响项目进度的关键活动和关键路线,通过对资源的优化调度,实现对项目实施的有效控制和管理。 网络计划方法的主要功能: 1用网络图描述一个实际项目的管理问题 (画网络图); 2计算项目的最早、最晚完成和开工时间 (网络计算); 3寻找关键活动和关键路径(网络分析); 4根据以上分析对网络进行优化 PERT网络分析法 PERT网络分析法(计划评估和审查审技术,Program Evaluation and Review Technique) PERT(Program Evaluation and Review Technique)即计划评审技术,最早是由美国海军在计划和控制北极星导弹的研制时发展起来的。PERT技术使原先估计的研制北极星潜艇的时间缩短了两年。简单地说,PERT是利用网络分析制定计划以及对计划予以评价的技术,它能协调整个计划的各道工序,合理安排人力、物力、时间、资金,加速计划的完成。在现代计划的编制和分析手段上,PERT被广泛的使用,是现代化管理的重要手段和方法。 一.画网络图 画网络图应注意以下规则: 1、按工作本身的逻辑顺序连接箭线 2、网络图中不允许出现循环线路 3、在网络图中不允许出现代号相同的箭线 4、在一个网络图中只允许有一个起点节点,一般只允许出现一个终点节点(多目标网络图除外) 5、在网络图中不允许出现有双向箭头或无箭头的线段 6、网

自动控制原理Matlab实验3(系统根轨迹分析)

《自动控制原理》课程实验报告 实验名称系统根轨迹分析 专业班级 *********** ********* 学 号 姓名** 指导教师李离 学院名称电气信息学院 2012 年 12 月 15 日

一、实验目的 1、掌握利用MATLAB 精确绘制闭环系统根轨迹的方法; 2、了解系统参数或零极点位置变化对系统根轨迹的影响; 二、实验设备 1、硬件:个人计算机 2、软件:MATLAB 仿真软件(版本6.5或以上) 三、实验内容和步骤 1.根轨迹的绘制 利用Matlab 绘制跟轨迹的步骤如下: 1) 将系统特征方程改成为如下形式:1 + KG ( s ) = 1 + K ) () (s q s p =0, 其中,K 为我们所关心的参数。 2) 调用函数 r locus 生成根轨迹。 关于函数 rlocus 的说明见图 3.1。 不使用左边的选项也能画出根轨迹,使用左边的选项时,能 返回分别以矩阵和向量形式表征的特征根的值及与之对应的增益值。 图3.1 函数rlocus 的调用 例如,图 3.2 所示系统特征根的根轨迹及其绘制程序见图 3.3。

图3.2 闭环系统一 图3.3 闭环系统一的根轨迹及其绘制程序

图 3.4 函数 rlocfind 的使用方法 注意:在这里,构成系统 s ys 时,K 不包括在其中,且要使分子和分母中 s 最高次幂项的系数为1。 当系统开环传达函数为零、极点形式时,可调用函数 z pk 构成系统 s ys : sys = zpk([zero],[pole],1); 当系统开环传达函数无零点时,[zero]写成空集[]。 对于图 3.2 所示系统, G(s)H(s)= )2()1(++s s s K *11+s =) 3)(2() 1(+++s s s s K . 可如下式调用函数 z pk 构成系统 s ys : sys=zpk([-1],[0 -2 -3],1) 若想得到根轨迹上某个特征根及其对应的 K 的值,一种方法是在调用了函数 rlocus 并得到了根 轨迹后调用函数 rlocfind 。然后,将鼠标移至根轨迹图上会出现一个可移动的大十字。将该十字的 中心移至根轨迹上某点,再点击鼠标左键,就可在命令窗口看到该点对应的根值和 K 值了。另外一种 较为方便的做法是在调用了函数 rlocus 并得到了根轨迹后直接将鼠标移至根轨迹图中根轨迹上某

相关文档
最新文档