ISM的计算机实现.docxVIP

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

ISM技术的计算机实现 陈林艺 1302011006 辛全超 1302011066 学员二旅五营 摘要:本文将解析结构模型(ISM)的传统算法利用MATLAB语言进行实现,应用矩阵的运算法则,把系统中的要素及要素之间的上下位关系用邻接矩阵表示,并做出系统的关系图,使复杂的系统分解成多级递阶结构形式。 关键词:邻接矩阵、可达矩阵、级别划分、ISM 引言: ISM法(Interpretative Structural Modeling Method,)是一种分析系统结构的方法。解析结构模型可将系统单元之间复杂、凌乱的关系分解成清晰的、多级递阶的结构形式。凡系统必有结构,系统的结构决定系统功能;破坏结构,就会完全破坏系统的总体功能,这说明了系统结构的普遍性与重要性。总之,要研究一个由大量单元组成的、各单元之间又存在这相互关系的系统,就必须了解系统的结构。 20世纪70年代以来解析结构模型(ISM)和其他结构模型在社会经济系统中得到了广泛的应用,解析结构模型属于静态的定性模型,建立系统的递阶结构模型,是ISM技术的核心内容。如果用传统的矩阵算法来划分系统层次,其运算量之大是让任何人都难以承受的。因此采用一种简便的算法设计开发出一个ISM法系统的程序是很有必要的。 ISM实现的算法思想 系统中的要素及要素之间的上下位关系可用对应的矩阵表示,这种矩阵称为关系矩阵,其中最直接的一种是邻接矩阵,用来表示各要素之间的连接关系。由于邻接矩阵是布尔矩阵,所以矩阵元素按布尔运算(逻辑和、逻辑与、逻辑乘)的法则进行运算,将邻接矩阵转化为可达矩阵,再将矩阵进行级间分解,然后再通过人-机结合,使复杂的系统分解成多级递阶结构形式。 ISM技术算法的功能设计 算法以MATLAB软件运行后,在kedaxingjuzhen.m文件中将系统的关系矩阵输入,例如:A = [1 0 0 0 0 0 0;1 1 0 0 0 0 0;0 0 1 1 1 1 0;0 0 0 1 1 1 0;0 0 0 0 1 0 0;0 0 0 1 1 1 0;1 1 0 0 0 0 1];运行Guanxitu.m文件后,在Command Window界面中分别输入:A(邻接矩阵)、R(可达矩阵)、L(级别划分矩阵)。在.m文件中将系统的关系矩阵输入,例如:rel=[1 0 0 0 0 0 0;1 1 0 0 0 0 0;0 0 1 1 1 1 0;0 0 0 1 1 1 0;0 0 0 0 1 0 0;0 0 0 1 1 1 0;1 1 0 0 0 0 1];运行后在Figure 1对话框中将会出现矩阵的关系图。 ISM技术的算法代码 Guanxitu.m文件代码 % ISM 解释型结构模型 根据邻接矩阵求可达矩阵,进行级划分的算法 % step 1 求可达矩阵 % A 是邻接矩阵,可以由用户输入 A = [1 0 0 0 0 0 0;1 1 0 0 0 0 0;0 0 1 1 1 1 0;0 0 0 1 1 1 0;0 0 0 0 1 0 0;0 0 0 1 1 1 0;1 1 0 0 0 0 1]; N=size(A,1); % N 是矩阵的阶数,是所有要素的数目 r = [N:N]; r=A; for(n=1:1:N) for(i=1:1:N) for(j=1:1:N) sum = 0.0; for(k=1:1:N) sum=sum+r(i,k)*A(k,j);%此处是采用普通的矩阵乘法,但是下面可以根据sum的值是否大于或等于1 %来判断连通型,从而等价得到r(i,j)的实际值。 end if(sum = 1) r(i,j)= 1; else r(i,j)=0; end end end end R=r; % R 是可达矩阵 %step 2 级别划分 L=[N:N]; % L 是二维数组,存储级划分的结果,下面首先初始化为0 for(i=1:1:N) for(j=1:1:N) L(i,j)=0; end end for(p=1:1:N) % p 是存储层次级数 l 的变量,也控制了总循环的次数 k=1; % k 是记录每一级(p)内要素,在L内存储下标的变量,形式为L(p,k) %下面是利用二重循环,求解p级内的要素 for(i=1:1:N) sign=0; % 是标志变量,初始为0,如果对某要素考察后,其值仍为0,则表明该要素是顶点要素。否则,不是顶点要素 sum=0; % sum 是计数器,用于判断当前考察的要素所在的矩阵行向量是否是值全为0的向量。因为本程序的算法是???样的, % 即如果已经发现某要素是某级的顶点,则在求下一级顶点时,需要去除上面各级的要素。在本程序是通过变通的方法实现 % 相同的目的,即所有已经是顶点的要素的所在行和列的值全

文档评论(0)

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

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

1亿VIP精品文档

相关文档