前言:
此刻看官们对“fcm聚类算法步骤”大约比较重视,你们都想要剖析一些“fcm聚类算法步骤”的相关文章。那么小编也在网摘上收集了一些关于“fcm聚类算法步骤””的相关知识,希望同学们能喜欢,你们一起来学习一下吧!引自:《智能设计:理论与方法》(作者:谭建荣,冯毅雄)
「1.多平台产品型谱重构设计问题描述 」
1.1 多平台产品型谱设计空间表达
使用进化算法求解产品型谱优化问题,首先要建立合理的设计空间染色体表达。基于结构化遗传算法原理的染色体表达方法,用控制位“1”或“0”表示变量在所有产品中共享或独立,仅能表达单平台设计。在多平台染色体表达方法中,设产品型谱包括p个实例产品,每个产品包括n个设计变量,则通用性染色体和设计变量染色体分别构成两个p×n阶矩阵,如图1(a), (b)所示。通用性染色体的每个基因取1到p之间的任意整数,列向量中两个相同的整数值表示该变量在这两个实例产品中共享;设计变量染色体中每个变量在其约束范围内取值,并与通用性染色体规定的变量共享情况保持一致。在产品型谱方案进化过程中,通用性染色体对设计变量染色体施加约束,保证两者变量共享的一致性。
图1 平台通用性与设计变量染色体表达方法
扩展二进制染色体的单点交叉算子和变异算子,分别得到二维通用性染色体的象限交叉算子和列向量变异算子。象限交叉算子首先在p×n阶矩阵内部随机选择一个点,将矩阵划分为4个象限。然后随机选择一个象限,交换两父个体中该象限的基因值,完成通用性染色体的交叉,其交叉过程如图2所示。对于包括p个实例产品和n个设计变量的产品型谱,分别在区间(1, p)和(1, n)内产生两个随机整数,则这两个数将通用性染色体分为4个象限。在4个象限中随机选择一个象限,交换父个体1和父个体2中该象限的基因值,生成具有不同通用性等级的子个体1和子个体2。
图2 二维染色体交叉算子
通用性染色体的变异算子用来增加进化过程中平台组合方式的多样性,以增强进化算法对多平台产品型谱设计方案的搜索能力。设pm为用户设定的变异概率,c(i, j) (i = 1,2,···, p; j = 1,2,···, n)为染色体基因位变量,则通用性染色体变异算子伪代码可描述如下:
(1)
该变异程序对每个设计变量生成[0,1]之间的一个随机数,如果该值小于预先设定的变异概率pm,则改变变量在实例产品中的共享情况,即随机将该变量的通用性变为全部独立或全部共享;否则,不改变变量的通用性。
1.2 平台通用性目标函数
根据产品型谱设计空间的染色体表达方式,需建立合适的目标函数以描述平台通用性等级。产品型谱罚函数法(product family penalty function, PFPF)衡量各实例产品间设计变量的偏差程度,PFPF越小,则平台的通用性越高。但仅考虑变量的差异无法准确描述平台的共享程度,因为即使某变量在各实例产品中取值偏差较小,也可能存在各产品间相互独立,而无共享的情况。
Martin等提出了通用性指数(commonality index, CI)来衡量产品型谱中组件的通用等级,一个包含p个产品和n个组件的产品型谱CI值可表示为
(2)
式中,u为产品型谱中独立组件的数目。CI在[0,1]区间变化,CI越大,表明产品型谱中独立组件的数量越少,则产品型谱的通用性越高。
CI指数适用于模块化产品型谱中平台通用性的衡量,而对于变量共享的参数化产品型谱,可借鉴CI指数的构建方法,建立类似的平台通用性指数。基于多平台通用性的二维染色体表达方法,定义Ni为通用性染色体第i个变量中独立整数的个数,建立参数化产品型谱非通用性指数(none commonality index, NCI),记为CN:
(3)
式中,p为实例产品个数,n为单个产品设计变量个数。CN在[0,1]区间变化,CN越小,表明产品平台中独立变量的数量越少,公共变量的数量越多,则平台通用性越高。
1.3 产品型谱优化重构的数学模型
优化方法是近年来应用于产品设计的一个重要方法,通过合适的优化算法,例如遗传算法、模拟退火、粒子群算法等,来确定产品设计变量的合理取值,在满足设计约束的前提下,达到最优或者较优的设计目标。实例产品的单目标优化模型可描述为
(4)
式中,x=[x1, x2,···, xn]为n维设计变量,每个变量xi在其最大值ximax与最小值ximin范围内变化,满足a个不等式约束和b个等式约束。
而产品型谱优化时,设计问题模型需要包括每个产品的设计变量值,以达到设计目标且满足约束条件。产品型谱优化重构问题的目标函数中还需要包含一个通用性评价指标,在优化过程中以性能指标最优且产品型谱通用性最大来确定产品平台。这样,产品型谱优化的难题在于解决产品型谱通用性与单个产品性能的平衡,企业总是希望获得尽可能大的通用性而又不削弱产品间的个性特征。因此,设xc为平台常量集合,xv为可调节变量集合,建立多平台产品型谱通用性与性能的优化重构模型为
(5)
式中,p为实例产品的个数。以平台非通用性指数 (5)和实例产品平均性能为优化目标。由于产品型谱设计中要满足每个实例产品的约束条件,因此约束条件的数量比单个产品扩大了p倍,增加了产品型谱优化设计的计算复杂度。
「2.产品型谱模糊聚类平台规划 」
2.1 设计变量敏感度分析
敏感度分析(sensitivity analysis)就是计算设计变量变化对于产品总体性能的影响程度,进而划分可能的平台常量和可调节变量集合,是下一步通过模糊聚类设置多平台常量共享策略的初始步骤。
参数化产品型谱包括一系列性能指标差异的实例产品,变量对于单个产品综合性能的敏感度叫做局部敏感度(local sensitivity);产品型谱中该变量各局部敏感度的加权平均,叫做全局敏感度(global sensitivity)。全局敏感度较小的变量,在各实例产品间通用所带来的性能损失较小,而全局敏感度大的变量则相反。敏感度分析的目标是求解各变量的全局敏感度,作为平台常量和可调节变量集合划分的依据。
通常,一阶偏导是敏感度分析的一种可行方法,但不适用于非线性优化模型。基于产品独立优化设计结果,使用微分敏感度分析法,设某产品的独立优化在x* = {x1*, x2*,···, xk*}处获得最优的偏好聚合目标值f*,k为设计变量的数目,则变量x1的局部敏感度为
(6)
敏感度分析完成之后,需指定阈值λ,将敏感度小于λ的变量作为可能的平台常量,进而分析多平台常量的共享策略,其余作为可调节变量。所依据的原理是低敏感度的变量通用所引起的产品性能损失相对较小,且能够提高平台通用性以降低产品成本;而高敏感度的可调节变量用于实现系列产品的性能差异,满足多样化的客户需求。但是,划分阈值λ的指定存在主观因素,需从产品型谱整体性能角度决定最优的集合划分。
2.2 平台常量的模糊聚类
参数化产品型谱分为单平台与多平台两种设计情况。对于单平台(single platform)产品型谱设计来说,每个平台常量或通用部件在整族产品中具有唯一公共值,而对于多平台(multiple platform)产品型谱设计来说,允许某些产品在特定的设计变量上取公共值,其它产品则可不受限制而取个性化的变量值。多平台产品型谱比单平台产品型谱具有更好的设计灵活性与柔性,但也增加了产品型谱设计的复杂度。本节对于敏感度分析划分出的平台常量集合,使用模糊聚类规划平台常量在各实例产品间的最优多值共享方案,在提高平台通用性的同时增加产品型谱设计的柔性。
对于每一个实例产品,建立其性能偏好函数、方差偏好函数和约束满足偏好函数,对平台常量通用所带来的性能、方差和约束满足偏好变化进行模糊C均值聚类,寻求平台常量的最优共享策略,以最小的设计损失获得最高的平台通用性。其中,性能偏好函数既可包括效率、功能等功能指标,也可包括重量、尺寸等成本指标;方差偏好函数是性能指标方差的偏好聚合,方差函数通过性能函数的一阶泰勒展开获得;约束满足偏好函数包括等式约束和不等式约束的满足情况,等式约束可用三角模糊数衡量,而不等式约束可用0-1函数衡量。
模糊C均值聚类(FCM)方法,要求每个个体对每个聚类的隶属度之和为1,并通过迭代划分使聚类损失函数趋于最小,能够快速获得指定数目的聚类中心,具有较高的聚类效率。FCM能够处理多维聚类问题,不同于层次聚类(HC)仅能处理单维聚类的限制。设平台常量x在各实例产品中独立优化的结果为{x1*, x2*,···,xn*}T,以x的均值取代各产品的独立优化值,获得性能、方差和约束满足指标的n×3阶矩阵Yx (n为实例产品数目);而独立优化设计中各产品形成的偏好矩阵为Yo,则由变量x通用所带来的性能、方差和约束满足度变化可记为:Y =Yo –Yx。对矩阵Y的n个行向量在3维空间中进行模糊C均值聚类,得到各元素对于每个聚类中心的模糊隶属度。
某平台常量的FCM聚类划分如图3所示,坐标轴X、Y、Z分别表示该变量通用所引起的性能、方差和约束满足偏好函数变化。10个元素经聚类划分为3个集合,并获得最小的FPI值,得到了该变量在各实例产品中的最优共享划分。
图3 平台常量的FCM聚类示意图
2.3 实例产品重构与平台性能检验
平台设定后,所有变量分为平台常量和可调节变量两类。平台常量的值已在前面设定,下面的任务是确定每个产品可调节变量的个性值,从而基于平台完成实例产品的设计。同样应用第一步中偏好函数与优化算法,以平台常量的公共值作为优化模型的输入,求解可调节变量的最佳取值。
产品型谱性能检验步骤分析重构方法所获得产品型谱的合理性与有效性。综合衡量产品平台的非通用性指数CN和由于平台通用所造成的性能损失(相对于独立优化设计),若重构方案的性能损失过大,则返回敏感度分析步骤进行新的平台常量和可调节变量集合的划分。
值得一提的是,参数化产品型谱稳健重构方法也属于分阶段的产品型谱优化设计方法,即先设定多值产品平台,然后求解每个实例产品,最终得到整个产品型谱的设计方案。本章方法能够实现产品平台的多值共享,提高了产品型谱设计的柔性,同时,该方法考虑了平台共享的稳健特征,能够以自底向上的方式支持参数化产品型谱的重构过程。
「 3.混合协同进化的产品型谱性能权衡重构 」
针对通用性与设计变量染色体同步进化带来的数据扰动和罚函数约束处理法中罚系数取值的不稳定问题,根据产品型谱数学模型中CN指数与产品性能目标计算相互独立的特点,提出混合协同进化的产品型谱优化重构方法。将通用性与设计变量染色体的进化分别放入主、附两个相关过程。主过程基于多目标进化算法求解平台通用性与产品性能的Pareto前沿;附过程基于单目标进化算法并行搜索每个通用性等级下产品型谱的最优规划方案。
3.1非支配排序遗传算法概述
Srinivas和Deb在1995年提出了非支配排序遗传算法(nondominated sorting genetic algorithm, NSGA),NSGA算法对多目标解群体进行逐层分类,每代种群配对之前先按解个体的支配关系进行排序,并引入基于决策向量空间的共享函数法。NSGA在群体中采用共享机制来保持进化的多样性,共享机制采用一种可认为是退化的适应度值,其计算方式是将该个体的原始适应度值除以该个体周围包围的其它个体数目。NSGA算法的优化目标数目不限,且允许存在多个不同的Pareto最优解,但该算法的主要缺点是计算效率较低,计算复杂度为O(MN 3)(其中,M为优化目标数量,N为种群大小),且算法收敛性对共享参数δ的取值较敏感,算法的稳定性较差。
Deb等在2002年对原始的NSGA进行改进,提出了改进型非支配排序遗传算法(nondominated sorting genetic algorithm II, NSGA-II),基于快速非支配排序、优势点保持和无外部参数的拥挤距离计算求解多目标优化问题的Pareto最优集。密度估计算子用于估计某个个体周围所处的群体密度,方法是计算两个解点之间的距离远近程度。拥挤距离比较算子是为了形成均匀分布的Pareto前端,这与原始NSGA中共享机制的效果类似,但不再采用小生境参数,提高了算法的鲁棒性。拥挤比较算子需要计算每个个体的非劣级别和拥挤距离值,产生非支配排序结果。拥挤距离排序结果表明,如果两个个体具有不同的非劣级别,则选择级别低的个体;如果两个个体具有相同的非劣级别,则选择具有较大矩形体的个体,因为该个体的邻居距其较远,引导个体向Pareto前沿中分散区域进化,增强算法的全局寻优能力。NSGA-II算法的计算复杂度为O(MN2)(其中,M为优化目标数量,N为种群大小),具有比NSGA更高的运算效率与稳定性,已成功应用于许多工程优化设计问题。
NSGA-II算法的流程简述如下:初始种群P包括N个个体,在变量范围内随机取值。首先依据优化目标与约束条件进行种群排序并计算拥挤距离,然后通过联赛选择、交叉与变异生成中间种群。中间种群与原始种群结合,进行排序计算并选择N个个体组成新一代种群,完成一次进化运算。当循环达到预先设定的最大代数时,运算停止并得到该多目标优化问题的Pareto最优集。
3.2产品型谱性能混合协同优化重构原理
NSGA-II算法基于快速非支配排序、优势点保持和无外部参数的拥挤距离计算求解多目标问题的Pareto最优集,是一种可靠的多目标进化算法。此外,Kennedy等提出的PSO算法是一种群体智能算法,来源于对鸟群或鱼群觅食行为的模拟,具有高速收敛和易于实现的特点,适合于求解单目标连续变量的优化设计问题,且能够加入有效的多约束处理机制。因此,混合协同进化算法的主过程使用NSGA-II算法,附过程使用PSO算法。
图4 混合协同进化原理示意图
混合协同进化的产品型谱重构原理如图4所示。进化过程中存在两类种群,分别是通用性种群和设计变量种群。通用性种群Pop1包含M个个体,每个个体表示不同的平台通用性,记为C1, C2,···,CM。用NSGA-II对Pop1进行运算,以相互冲突的CN指数和产品性能为优化目标,求得多个通用性等级下产品型谱设计的Pareto前沿;设计变量种群包括M个并列的粒子群,记为Swarm1, Swarm2,···,SwarmM。每个粒子群Swarmi包括N个粒子,对应设计变量染色体。用PSO算法并行搜索通用性等级Ci下,各实例产品满足约束条件的最优设计变量值。
在协同进化过程中,NSGA-II首先进行一代通用性染色体的象限交叉、列向量变异运算,生成新的通用性种群。然后,多个粒子群并行进化,其中,每个粒子群进行G2代飞行,返回对应通用性等级下最优的设计变量、性能参数和总约束冲突。若约束冲突量不为0,说明变量在各实例产品中的该共享方案不合理,NSGA-II继续下一代进化。混合协同进化连续运行,直到满足停止条件,如NSGA-II达到指定的最大迭代次数G1。
3.3 设计变量种群的进化
用PSO算法求解已知通用性等级下产品型谱的优化重构问题,需满足各实例产品的多个约束条件。使用“可行解优先”的多约束处理方法,对于所有的设计约束,每个解要么是可行的,要么是不可行的。对于两个不同解存在3种情况:都可行;都不可行;一个可行,另一个不可行。定义解i优于解j,当且仅当以下条件中的任意一个满足:
(1)解i可行而解j不可行;
(2)解i与解j都不可行,但解i的约束违反量较小;
(3)解i与解j均可行且解i优于解j。
将该约束处理原则用于粒子群局部最优值和全局最优值的更新,PSO算法可将粒子群由初始的不可行区域逐步趋向可行区域,最终将搜索范围限制在可行区域之内,无需额外运算即可对大量设计约束进行有效的处理。
在主过程通用性染色体生成多个平台通用性等级之后,寻找每个通用性等级下各实例产品的设计参数成为附过程的求解任务。在混合协同进化的产品型谱重构设计中,各设计变量种群Swarm1, Swarm2,···,SwarmM的进化相互独立,因此,可采用多线程并行机制加快多个通用性方案的设计寻优过程。
设计变量种群的并行进化流程如图5所示。对每个设计变量种群,用CreatThread函数生成一个PSO进化线程,各线程通过消息通信接口(Message Passing Interface, MPI)与通用性染色体传递信息。运算前MPI将通用性控制矩阵Ci,p×n传入PSO线程;PSO线程以产品平均性能为优化目标,在通用性矩阵、系列产品的设计变量取值范围和设计约束条件的控制之下,实行进化运算;进化完成后MPI将设计变量、性能参数和约束冲突量返回通用性染色体,作为该通用性等级下产品型谱的最优规划方案。多个PSO线程的结果相组合,得到各通用性等级下产品型谱的最优设计方案。
多线程并行进化机制的优点是,运算时间不会随通用性种群规模的扩大而显著增大,仅与PSO算法中使用的种群规模N和迭代次数G2有关,相比多粒子群串行进化大幅提高了运算速度,缩短了运算时间。
图5 多粒子群的并行进化过程示意图
3.4 产品型谱性能混合协同优化重构算法
基于混合协同进化原理,建立NSGA-II与PSO协同进化的产品型谱优化重构流程如图6所示,其运算步骤描述如下:
步骤1 根据多平台产品型谱的染色体表达方法,随机生成个体数为M的种群Pop1,初始化通用性种群。
步骤2 计算父种群中个体的目标函数。首先,根据式(式3)计算每个个体的非通用性指标CN;然后,根据PSO的并行进化机制,求得每个通用性等级下产品型谱的最优规划方案,包括各实例产品的设计变量值、性能目标值和总约束冲突量。
步骤3 对种群Pop1进行非支配排序,计算每个个体的拥挤距离。
步骤4 根据个体支配关系和拥挤距离,进行通用性种群的选择、象限交叉和列向量变异,生成包含M个个体的子种群。
步骤5 采用与步骤2相同的方法,计算子种群中个体的目标函数。
步骤6 父子种群融合,生成包含2M个个体的临时种群。对临时种群进行非支配排序和拥挤距离计算,选择优势个体生成包含M个个体的新父种群。
图6 产品型谱优化重构的混合协同进化流程
标签: #fcm聚类算法步骤