[发明专利]一种开源软件项目的演化建模方法在审
申请号: | 202210102008.3 | 申请日: | 2022-01-27 |
公开(公告)号: | CN114442998A | 公开(公告)日: | 2022-05-06 |
发明(设计)人: | 王红兵;季浩然 | 申请(专利权)人: | 东南大学 |
主分类号: | G06F8/10 | 分类号: | G06F8/10;G06N3/00;G06Q10/10 |
代理公司: | 南京众联专利代理有限公司 32206 | 代理人: | 杜静静 |
地址: | 210096 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 项目 演化 建模 方法 | ||
1.一种开源软件项目的演化建模方法,其特征在于,所述方法包括以下步骤:
步骤1:开源软件项目CA状态演化规则的构造与表达;
步骤2:提出OSS-CA演化规则智能获取算法;
步骤3:基于OSS-CA模型动态模拟GitHub项目的演化。
2.根据权利要求1所述的开源软件项目的演化建模方法,其特征在于,步骤1:开源软件项目CA状态演化规则的构造与表达,具体如下:
采用了属性值的归一化,具体的计算公式如下所示,
式中:xnew表示属性值归约后的新值,xold表示属性值归约前的原始值,xmin和xmax分别表示属性的最小值和最大值,对于软件项目特征属性值进行上式的归约计算,使其都被标准化在[0,1]的值域范围内,
CA演化过程主要表现为元胞状态的改变,研究元胞状态改变的规律就必然涉及到地理CA演化规则的表达,GWO算法主要被用来搜索每个属性条件的阈值上限值和下限值,CA演化规则的实质就是求解软件项目元胞状态更改变化的条件组合,不同的属性条件的逻辑组合决定元胞下一时刻状态如何转变,利用逻辑判断语句“IF-THEN”的形式对演化规则进行表达,具体的演化规则表达形式如下所示:
式中:Vj是第j个属性条件,Xjlow和Xjhigh分别是第j个属性的最优上界值和最优下界值,j∈{1,2,..,k},k是所有的属性条件的个数;Classi表示中心元胞的状态属性为第i类,i∈{1,2,..,m},m是元胞类别的个数;
在二维的空间中,演化规则可用特征向量X进行表示,特征向量X的定义形式为:
X=(X1low,X1high,X2low,X2high,…,Xjlow,Xjhigh,…,Xklow,Xkhigh)
式中:鉴于特征向量X中每个属性值具有空间位置相似性的特点,且GWO算法在每个属性维度上具有空间对等的特性,因此在2k维度空间上的属性值都应该被合理地归一化到相同的值域范围内。
3.根据权利要求2所述的开源软件项目的演化建模方法,其特征在于,步骤2:提出OSS-CA演化规则智能获取算法;具体如下,
OSS项目元胞状态的特征向量X优化求解即在每一类元胞状态转换特征向量上寻找一个最优的属性取值区间,利用寻求到的最优属性取值区间对特征属性满足相应的取值范围的元胞状态进行转变,实现元胞状态转变的模拟,灰狼种群位置初始化完成后,最为关键的步骤就是灰狼位置与目标函数值的更新迭代,这在算法求解CA演化规则过程中至关重要,在完成元胞特征向量X的灰狼位置Positions初始化完成后,需对初始化的灰狼位置和目标函数不断地进行迭代优化,以期通过灰狼位置和目标函数值迭代更新挖掘出较优的特征向量X,当寻找的新的猎物时,计算新猎物的收益度即相应演化规则的质量,如果新猎物具有更高质量,则更新自身所对应的搜索位置即元胞特征向量,当灰狼完成一次规则搜索过程之后,每只灰狼都会计算目标函数值并决定下一次的搜索是否更新灰狼的位置,如此反复地进行猎物的搜索,直到满足规则挖掘要求条件;
规则质量评价算子是OSS-CA演化规则获取质量的评价检验标准,即是灰狼狩猎的猎物价值量,规则质量评价算子决定了OSS-CA算法求解优化的内容与方向.据相关研究表明,基尼指数fitness是一种适用于规则质量评价的重要指标,其计算方式为:
式中:TP表示满足规则条件,且与规则预测的软件项目元胞类型相同的样本个数;FP表示不满足规则条件,且与规则预测的元胞类型相同的样本个数;FN表示不满足规则条件,且与规则预测的元胞类型不同的样本个数;TN表示表示满足规则条件,且与规则预测的元胞类型不同的样本个数。
4.根据权利要求2所述的开源软件项目的演化建模方法,其特征在于,步骤3:基于OSS-CA模型动态模拟GitHub项目的演化,具体如下,
OSS-CA演化规则智能获取算法在运算求解时需输入一个样本数据集,除了对每一个项目数据的整理,对于三个月内刚刚被创建的项目,认为它处于“新生”状态,用数字“0”标记它,CellStatus={0};对于创建时间超过个月,且各项属性值处于上升状态中的项目,认为它处于“发展”状态,用数字“1”标记它,Cell Status={1};对于创建时间超过六个月,且各项属性值已有三个月未发生明显变化的项目,认为它处于“衰败”状态,用数字“2”标记它,Cell Status={2};
在软件生态系统中,大多数项目都是相互依赖的,当用户在一个项目的PullRequest操作、Issue操作或Commit Comment操作中提到另一个项目时,认为这两个项目之间存在依赖关系,通过Number of external links属性值可以方便地知道,OSS项目之间存在的交叉引用关系,
OSS项目演化模拟过程中,OSS项目元胞的演化情况除了与演化规则相关,还与各种随机条件有关,在OSS-CA算法模型中引入随机变量γ,使得γK,K为当前迭代次数T的倒数,并符合以下公式:
K=1/T;
当同时满足演化条件及γK时,元胞状态才会发生改变,该随机变量的加入可动态实现元胞空间中某个空间元胞位置上的元胞状态的随机动态转换,较好地体现了OSS项目动态演化的随机性特点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210102008.3/1.html,转载请声明来源钻瓜专利网。