南京航空航天大学可靠性用计算机找系统的最小通路集的算法实验报告.docVIP

南京航空航天大学可靠性用计算机找系统的最小通路集的算法实验报告.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

-----WORD格式--可编辑--专业资料-----

--完整版学习资料分享----

可靠性设计分析技术大作业

用计算机找系统的最小通路集的算法

学生姓名

学号

学校

南京航空航天大学

学院

自动化学院

专业

自动化专业

班级

指导老师

2015年4月

试验目的

通过实验,掌握可靠性分析中的网络分析法,学习利用计算机计算系统可靠性的方法。

实验内容

针对给定的系统网络图,任选一种计算机语言(MATLAB语言或C语言)编写采用网络分析法求解系统

程序的编排思想

1.思想

输入节点I作为起始节点;

由起始节点出发,选下一步可到达的节点j;

判断节点j是否走过,若已走过则后退一步,以上一个节点作为起始节点,转②;

判断是否已达到输出节点L,若未到,则把j作为起始点,转②;

判断是否已找到了所有的路,若否,则后退两步,把上面两个节点作为起始节点,转②;

结束

2.由以上可见,计算机算法的关键是要进行几个判断:

判断节点是否与前面走过的节点重复;

判断是否已找到了一条路;

判断是否已找到了所有的路。

3.算法参数和符号

n:网络中节点数;

I:输入节点标号;

L:输出节点标号;

E:扇出向量;E=(E(1),…,E(I),…,E(n)),表示离开节点1,…,n的弧数。其中E(i)表示节点I下一步可以到达的节点有E(I)个。E阵完全由网络所确定。

R:路线矩阵;R=(r(I,k)),I=1,…,n;k=;,…,E(I)。

R的第I行记录了节点I可以一步到达的节点标号。R不一定是长方阵,即对不同的行,列数未必相同。为了表示I的下一步的节点已经完全走遍,同时区分出输入节点I,在R的每行再增加一个元素

r(I,E(I)+1),当I≠I时,取-1,当I=I时,取0。

此时仍称R为G路线矩阵。显然,R阵完全由网络所确定。

C:位置向量;C=(C(1),…,C(I),…,C(n)),其中C(j)记录节点j在R中的列号。而元素r(j,Cj)记录j下一步到达的节点标号。

F:检验向量;F为定义在节点{1,2,…,n}上的函数,初值为I≠I时,取1,i=L时取-1,其余情况取0。

F的作用为:当某个节点j已走过时,F(j)的值就为1。在寻找一条最小路集的过程中,这可以用来判断后面的节点是否与已走过的节点有重复。一旦F(j)=1,表明已达到输出节点L,即找到了一条最小路集。

P:输出矩阵;所有最小路集组成的矩阵,其中每一列为由输入节点I到输出节点L的一条最小路集。P的元素P(v,w)记录了第w条最小路集中第v个节点的标号。

程序运行的最终结果

所用语言:c语言

运行平台:Dev-C++5.4.1

假设网络如图所示。

图3-29桥式网络 图3-30有向网络图

图3-29从节点1到节点3的运行结果为

图3-30运行结果

心得体会

经过一天的学习,以及以前的知识储备,终于把代码写了出来,最终也能正常运行。在这个过程中查了不少资料,也抄了部分代码,我觉得抄程序是最笨的方法但我认为它是进步最快的方法,抄程序是积累经验的时候,而做项目才是真正把所学为所用的时候,可以说只有你做一个大点的项目出来才能真正是说明你学到了东西,你会用所学的东西,要不然就算你学的再多,不会用也没用。

在这个过程中的体会是

1.不会的一定要问明白;

2.在学习语言的时候一定要记住动手,不要只说不做,这样会行成眼高手低,不管什么样的程序都要亲手做过才能说会了;

3.进一步加深对课堂讲授内容的理解。课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致;

4.熟悉程序开发环境、学习计算机系统的操作方法。一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。通过上机实验,熟练地掌握c语言开发环境;

5.学习上机调试程序。完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小

文档评论(0)

bookljh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档