基于模糊层次分析的综合能力评估系统的设计与实现

时间:2022-11-04 11:50:28 浏览量:

[摘 要] 为有效评估综合能力,可构建一个基于模糊层次分析的综合能力评估系统。该系统是以运筹学中的决策理论为基础,基于AHP的模糊综合集成算法为核心,采用混合编程技术实现的B/S结构的Web应用软件。此评估系统能客观评价出综合能力水平,反映其发展规律。被评价者可根据评估结果有针对性的进行改进,进一步提高综合能力。

[关键词] 模糊层次分析算法;综合能力评估;网络系统

doi : 10 . 3969 / j . issn . 1673 - 0194 . 2017. 15. 082

[中图分类号] TP39 [文献标识码] A [文章编号] 1673 - 0194(2017)15- 0184- 03

0 引 言

目前,对基于层次分析法的综合能力评估研究较多,但是,由于有些影响综合能力水平的要素并没有明确的高低关系,所以应用传统的层次分析评估方法存在不合理性。而模糊综合评价是以模糊数学为基础,应用模糊关系合成原理,将一些边界不清、不易定量的因素定量化,从多个因素对被评价事物隶属等级状况进行综合型评价的一种方法。以这种方法为理论基础构建出实用、易用的评估系统,将能使综合能力的评估更加科学、有效。

1 系统设计

本系统设计的总体思路是,认真分析综合能力评估的实际需求,确定要素全面的评估内容,构建层次分明的指标体系,建立公正客观的评估机制;以系统论原理为主导,根据各要素之间的联系综合评定整体,融合影响评估的客观规律、原则以及偶发的随机因素,综合运用运筹学、模糊数学、软件工程学、模拟推演等方法,优化整体设计;以简便实用为目标,封装复杂的评估算法模块,实现易于布设的网络平台,呈现清晰明了的交互界面,方便推广使用。

1.1 指标设计

针对某种综合能力进行深入理论研究,明确其基本构成、基本特点、目标达成等内容,以运筹学中的层次分析理论为支撑,构建检验评估指标。

1.2 算法设计

本系统的核心算法是模糊层次分析算法,是一种定性与定量分析相结合的评估方法。模糊层次分析算法的原理是利用层次分析法确定指标的权重值,通过专家打分,确定各指标的隶属度,进行模糊综合评估,最终形成综合集成评价。其中需运用特征向量法、递阶层次结构原理、两两比较标度与判断原理和层次排序原理等多种数学基本原理[2]。

1.3 软件设计

该系统采用B/S结构,开发软件平台是Windows 7、Visual Studio 2010 旗舰版、MATLAB 2012a、SQL Server 2005、IIS 7.5。本系统是由系统登录、在线评估、查询历史、管理评估等功能模块组成的网络应用平台。其中在线评估模块是核心模块,设计原理如下:可根据构建的检验评估指标,对二级指标及其中的三级指标进行两两比较输入,形成比较矩阵;统计专家评估结果形成专家评估矩阵;系统自动调用模糊层次分析算法模块进行评估计算,得出评估结果。所有数据将自动保存至数据库中。

2 软件实现

采用网络编程、混合编程、数据库技术实现综合能力评估软件。特别是混合编程技术充分利用了不同软件的技术优势。一方面,评估分析算法在实现过程中需用到多种数学基本原理,使用数学专业软件MATLAB 2012a进行分析和计算效率更高;另一方面,为实现友好、方便的人机互动,便于非专业人员使用,又采用了网络平台开发系统Visual Studio 2010进行软件设计。

通过跨平台调用实现混合编程是本软件的关键技术,在Visual Studio 2010中创建ASP .Net Web应用程序并引用MATLAB 2012a的自带组件MWArray和实现评估分析算法的自定义组件,结合页面输入将数据参数传递给自定义组件即可进行分析计算。同时,输入数据及计算结果自动保存至SQL Server数据库[3],方便查询及管理,并将结果返回到页面之中。

2.1 在MATLAB 2012a中实现评估算法并编译生成可供.NET调用的COM组件

首先,用mbuild -setup命令配置编译COM环境。然后,新建类型为.NET Assembly 的Deployment Project,并将实现决策算法的语句写入m文件[4],并进行编译,生成.dll文件。

2.2 在Visual Studio 2010中调用自定义的.dll文件实现评估分析功能

2.2.1 引用组件

在.NET编程环境中,除了引用自定义的.dll文件,还应调用MWarray.dll通用组件,以支持对MWNumericArray类型的处理,该组件的位置在MATLAB的安装目录\MATLAB\R2012a \toolbox\dotnetbuilder\bin\win32\v2.0下。另外,还需在代码开头加入using语句,以便在程序中调用相应组件。

//关键语句

using MathWorks.MATLAB.NET.Arrays;//系统通用组件

using MathWorks.MATLAB.NET.Utility;//系统通用组件

using AHPFuzzy;//自定义组件

2.2.2 转换数据格式

根据界面输入,提取相应的判断矩阵,其中要特别注意数据格式的转换问题。因为在调用MATLAB组件时,输入、处理、输出的数字数据只能是MWNumericArray类型的矩阵,即使是一个数字也是一个1*1的MWNumericArray变量。

//关键语句

double[,] myarrN=new double[8,8];//定義myarrN,用于存储判断矩阵。

……

MWNumericArray arrA_B = null;//定義MATLAB类型的矩阵变量

arrA_B = (MWNumericArray)(myarrN);//强制类型转换,以便作为参数传递给MATLAB生成的COM组件

2.2.3 调用组件

在调用算法组件实现决策分析的过程中,需特别注意参数的传递。

关键语句如下:

AHPFuzzy.AHPFuzzy evaluate=new AHPFuzzy.AHPFuzzy();//初始化一个对象

result = (MWNumericArray)evaluate.mainAHPFuzzy(arrA_B, arrB1_C, arrPB1_C, arrB2_C, arrPB2_C, arrB3_C, arrPB3_C, arrB4_C, arrPB4_C, arrB5_C, arrPB5_C, arrB6_C, arrPB6_C, arrB7_C, arrPB7_C, arrB8_C, arrPB8_C);

sub = (MWNumericArray)evaluate.subAHPFuzzy(arrA_B, arrB1_C,arrPB1_C,arrB2_C,arrPB2_C,arrB3_C,arrPB3_C,arrB4_C,arrPB4_C,arrB5_C,arrPB5_C,arrB6_C,arrPB6_C,arrB7_C,arrPB7_C,arrB8_C,arrPB8_C);//调用matlab中写好的函数mainAHPFuzzy和subAHPFuzzy,根据判断矩阵和评估矩阵的值,计算返回评价结果。

3 软件测试

3.1 系统部署要求

硬件要求:服务器应采用双核CPU主频2 GHz、内存4 G或以上,硬盘安装空间10 G以上。客户端要求为PC机,CPU主频1 GHz、内存1 G或以上,硬盘安装空间2 G以上。

软件要求:服务器软件包括中文版 Windows Server 2003(SP2)(也可选择Windows XP 、Windows 7 系统)、中文版SQL

Server 2005、MATLAB Complier Runtime (MCR) R2012a_win32 、.Net Framework 4.0。客户端软件包括Windows XP professional(SP3)、.Net Framework 4.0。

3.2 软件测试情况

以多人使用同一功能和多人使用不同功能的形式对系统进行压力测试,其性能符合设计要求。以常见的注入式入侵、不同类型用户使用和数据类型验证的方式对系统的安全性抽查,其结果能满足设计要求。系统界面设计美观、布局合理、数据录入便利,数据处理效率较高,使用方便。

4 结 语

应用该评估系统时,可根据具体评估目标的基本构成、基本特点以及目标达成等内容,确定评估指标体系,提供检验标准。在评估过程中,通过精确的运筹计算、合理的定性分析、多角度差异比较、综合模拟推演等,可发现各要素之间的互相联系和能力发展规律,从而及时采取相应策略进行调整,促进综合能力的提升。该系统可直接部署在网络各平台上,可移植性和稳定性好,实用性强,使用方便,成本低,便于推广。

同时,在应用本评估系统时也应注意,在评估内容上,由于影响综合能力评估的因素复杂多变,需以变化与发展为标准不断改进指标体系。在评估方法上,模糊层次分析算法是定性与定量分析的结合,需要大量的实践数据进行支撑,在系统应用和推广过程中,应不断充实数据库信息,特别是加强对边界值、特殊值的情况分析,以求进一步完善算法。

主要参考文献

[1]杜栋,庞庆华,吴炎.现代综合评价方法与案例精选[M].北京:清华大学出版社,2012.

[2]焦宝聪,陈兰平.运筹学的思想方法及应用[M].北京:北京大学出版社,2008.

[3]明日科技. ASP.NET从入门到精通[M].北京:清华大学出版社,2014.

[4]刘浩,韩晶. MATLAB R2012a 完全自学一本通[M].北京:电子工业出版社,2013.

推荐访问:综合能力 模糊 层次 评估 分析