基于Kmeans和布谷鸟算法的流程模型聚类.docx
《基于Kmeans和布谷鸟算法的流程模型聚类.docx》由会员分享,可在线阅读,更多相关《基于Kmeans和布谷鸟算法的流程模型聚类.docx(7页珍藏版)》请在冰豆网上搜索。
基于Kmeans和布谷鸟算法的流程模型聚类
基于K―means和布谷鸟算法的流程模型聚类
摘要:
流程模型聚类是流程管理领域的一个热门话题。
本文提出一种基于布谷鸟算法的K-means算法,该算法弥补了K-means算法的依赖初始解、易陷入局部最优等缺点。
本文从流程模型结构性能、成本、效率、顾客满意度以及质量等五个方面模拟数据集,并选择权重较高的属性进行试验操作,结果表明算法的具有较高的可行性和有效性。
Abstract:
Processmodelclusteringisahottopicinthefieldofprocessmanagement.ThispaperpresentsanewK-meansalgorithmbasedoncuckooalgorithm,whichcompensatesdrawbacksoftraditionalK-meansalgorithm,suchasrelyingoninitialsolutionandbeingeasilytrappedinlocaloptimums.Inthispaper,simulateddatasetsconsistoffivefeatures(processmodelstructureperformance,cost,efficiency,customersatisfactionandquality),butexperimentsareconductedbyonlytwoindicatorswithhigherweight.Experimentalresultsshowthatthemethodhasrelativelyhigherfeasibilityandeffectiveness.
关键词:
布谷鸟算法;K-means算法;流程模型聚类
Keywords:
cuckooalgorithm;K-means;processmodelclustering
0引言
随着流程管理领域关键技术的快速发展以及大型组织或跨国企业拥有越来越多的纷繁复杂的业务流程,建立流程模型库成为一种趋势,而如何对流程模型库进行全面管理和维以及挖掘使用流程模型库成为目前热点问题之一。
对于已聚类的业务流程模型进行流程挖掘,挖掘出更多的模型中隐含的信息,有助于企业领导做出正确的决策,同时用户也可以根据自己的需要进行个性化定制,大大提高了流程模型的使用效率和用户的满意度。
流程模型以求解业务流程相似性的流程模型聚类成为解决流程模型库维护问题的新趋势。
对于业务流程模型聚类的问题,传统的求解方法是利用业务流程模型的结构化组成部分,求解模型相似度,从而进行流程模型聚类。
文献[1]将从标签文本、结构和行为相似三个方面,求解流程相似性。
Dijkman等在文献[2]中提出利用图匹配的流程模型相似性机制。
基于图编辑距离(grapheditdistance)比较的结构相似性机制同时考虑了文本相似度和模型拓扑结构[3]。
关于流程行为相似性,相关文献提出了各种流程行为等价的概念,如互模拟等价(bisimulation)[4]、轨迹等价(traceequivalence)[5]等。
但是这些等价概念只能划分出等价和非等价,而不能给出一个量化的值。
为此,专家、学者从不同的角度提出测算方法,Aalst等在文献[6-7]提出基于流程日志的观察行为(observedbehavior)方法,Wang等提出基于首要变迁序列(principaltransitionsequence)的有标志Petri网的行为相似性度量方法[8]。
Jin等提出一种基于流程结构和语义特征进行模型聚类后再检索的机制[9],其目的是为了提高模型检索效率,避免在查询过程中遍历模型库中的每一个流程模型。
这些相似性研究的也为流程模型聚类提供了大量的理论研究。
关于流程模型聚类,文献[10]提出了以业务单据为中心的流程模型聚类,以层次聚类算法进行聚类,进行模型预处理。
K-means算法是由Steihaus、Lloyd、Ball&Hall、J.B.MacQueen分别于1955年、1957年、1965年、1967年在不同的科学研究领域提出的经典的基于划分的聚类算法,该算法效率较高、容易实施,且易于和其它方法相结合,是成为数据挖掘、机器学习、模式识别和数量统计等领域应用最广的聚类算法之一的主要原因[11]。
布谷鸟(CuckooSearch,简称CS)算法是由剑桥大学的YANGXin-she和拉曼工程大学的DEBSuash在文献[12]中提出的一种新的仿生算法,该算法主要基于布谷鸟的巢寄生繁殖机理和莱维飞行(Levyfights)搜索原理两个方面,其主要特点是寻优能力强、随机搜索路径优、参数少、操作简单和易于实现等[13]。
目前,布谷鸟算法已成功应用于无线传感器数据优化[14]、高斯分布[15]、工程优化[16]、嵌入式系统[17]以及结构性软件测试[18]等方面,有效地解决了多种优化问题,由于提出的时间较短,目前还尚未发现将其应用于流程管理领域的文献。
在上述文献中,均是从流程模型的结构部分去考虑流程聚类,但是在实际的应用中,仅仅考虑流程模型的结构或结构性能是远远不够的,还应考虑流程的成本、顾客满意度等等。
本文从流程模型的结构性能、成本、效率、顾客满意度以及质量等五个方面,从数据化的角度对这些指标进行量化,同时提出以一种基于布谷鸟算法的K-means聚类算法进行流程模型聚类。
通过仿真实验,实验结果验证了算法的可行性。
1K-means算法
K-means算法是基于划分的聚类算法。
算法前提是假定数据库中有n个对象以及聚类数目k。
该算法将n个对象划分为k个划分(k?
燮n),每个划分代表一个聚类,使得类间对象尽可能不同,类内对象具有较高的相似度。
聚类依据是利用相似度函数,通过距离来衡量,对于kn空间中的向量,一般用的是欧式距离d=‖x-c‖。
K-means聚类算法的过程如下:
输入:
类数目k以及包含n个对象的数据集
X=(x1,x2,x3,…,xn);
输出:
k个类Zj。
K-means聚类算法的步骤如下:
①从数据集中X=(x1,x2,x3,…,xn)中任意选择k个对象作为初始的聚类中心c1,c2,c3,…,ck;
②计算数据集中数据点xi(i=1,2,3,…,n)与上述k个聚类中心的距离cj(j=1,2,3,…,k),若满足‖xi-cj‖<‖xi-cm‖,m=1,2,3,…,k,m≠j,则xi∈Zj;
③重新计算中心点c■■,c■■,c■■,…,c■■,公式如下
c■■=■■Xi,i=1,2,3,…k
(1)
④若c■■=c■■,i=1,2,3,…k,则程序终止,算法已经收敛,输出结果,否则,返回步骤②。
在算法执行的过程中,一般会给定一个固定的最大迭代次数,这是为了防止步骤④中不满足条件时会出现无限循环。
2布谷鸟算法
在自然界中,布谷鸟最为人所知的特性就是孵卵寄生性,由于布谷鸟自己并没有孵化能力,所以它们常常将卵放在其他鸟类的巢中,靠其他鸟(义亲)来孵化和养育。
布谷鸟为了减少寄主将它抛弃的可能,布谷鸟产出的卵均是形似寄主的卵。
同时,布谷鸟会移走寄主巢中的一个或多个的卵,以免被寄主发现卵数的增加,同时也可以减少寄主幼鸟的竞争。
如果寄主发现了布谷鸟的卵,则会扔出布谷鸟的卵或者重新选择地方搭建鸟巢[19]。
2.1布谷鸟算法实现的理想状态根据布谷鸟搜索原理,可以设计出新颖的源自布谷鸟的智能算法,为了模拟鸟巢的产卵的行为,需要假定三种理想的状态:
①布谷鸟每次产生一只卵,并随机选择鸟巢位置来孵化;
②在随机选择的一组鸟巢中,最优的鸟巢会被保留到下一代;
③鸟巢的数量n是固定的,原鸟巢的主人发现外来鸟蛋的概率为Pa.,其中Pa∈[0,1]。
2.2布谷鸟算法实现的过程在上述三种理想状态的基础上,根据布谷鸟孵化鸟蛋的过程,布谷鸟算法的主要步骤如下:
Step1:
初始化鸟巢。
目标函数是f(X),X=(x1,x2,x3,…xm)T,随机产生n个鸟巢初始的位置Xi(i=1,2,3…n)。
其中n是表示鸟巢的个数,m表示解空间维数。
Step2:
根据目标函数计算每个鸟巢的目标函数值,并得到当前最优解。
Step3:
保留上代最优鸟巢位置。
每个鸟巢的主人会通过莱维飞行模式来更新自己的鸟巢的位置,位置更新公式如下:
x■■=x■■+?
琢.*Levy(?
姿)
(2)
其中,?
琢>0为步长大小,且大多数情况下,取?
琢=1。
.*为点对点乘法,Levy(?
姿)是随机搜索路径,且随机步长符合Levy分布:
Levy(?
姿)~u=t-?
姿,1<?
姿?
燮3(3)
Step4:
计算改进后鸟巢的目标函数值,并与改进前的进行比较,按照贪婪法则保留较好的鸟巢。
Step5:
产生一个随机数R,R表示鸟巢主人发现外来鸟蛋的可能性并与Pa进行比较,若R>Pa,则随机改变鸟巢位置,得到一组新的鸟巢。
并计算新的鸟巢的目标函数值与当前最优鸟巢进行比较,保留较优解。
Step6:
执行上述步骤,直到满足结束条件,并输入最优解。
3基于布谷鸟算法的K-means聚类算法
3.1适应度函数设计针对于K-means算法对初始值要求很高以及已陷入局部最优的缺点,引入布谷鸟算法可以有效弥补K-means的缺点。
布谷鸟算法根据莱维飞行模式进行位置更新,基于这一基本原理,基于布谷鸟算法的K-means的适应度函数设计如下:
X■■=nj*Y■■-■randi+■+randai+?
琢*levy(r)(4)
其中,Xi表示鸟巢位置,Yj表示当前类中心即当前鸟巢位置,nj表示当前聚类的个数,k表示聚类数,randi表示随机抽取到其他类的鸟巢,randai表示随机从其他类抽取到当前类的鸟巢,?
琢为转移参数,levy(r)为随机搜索路径。
3.2目标函数设计目标函数设计为使得各类中点到类中心的距离和最短,具体公式如下:
d=■‖xi-ci‖(5)
其中,xi∈ci。
3.3算法流程
①参数设置:
样本数n,聚类数k,转移参数?
琢,最大迭代次数T,发现概率Pa。
②初始化:
从样本中选出k个点作为聚类中心,作为初始鸟巢位置。
③对各个鸟巢做适应度计算。
④根据公式
(2)对每个鸟巢进行位置更新,产生新的鸟巢位置。
同时产生随机数r,r>Pa,则随机改变鸟巢位置。
⑤对每个新产生的鸟巢进行K-means优化操作,将其优化为以改鸟巢为初始值的k均值问题的局部最优解。
⑥产生新一代的鸟巢位置。
⑦判断结束条件,当条件满足时,结束操作并输出结果,否则转入③。
K-means优化策略:
①根据布谷鸟算法产生的新的鸟巢,按照数据对象与类中心之间的聚类误差和越小越好,计算出各自分类矩阵U。
②根据分类矩阵U,计算新的聚类中心。
③对新的聚类中心计算适应度值,比较适应度值,选择适应度值较大的聚类中心。
4实验及结果分析
4.1实验设置
4.1.1实验环境本文所涉及的代码均采用MatlabR2012a软件编写,编译运行的计算机参数为:
32位Window7操作系统、Intel(R)Core(TM)2DuoCPUE7500@2.93GHzCPU、2.00GB内存。
4.1.2参数设置本文试验中参数设置如下:
根据文献[20]中