买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:东南大学
摘要:本发明以系统动力学领域中的元胞自动机CA建模OSS项目,构建了灰狼优化算法GWO的CA演化规则,定义了面向OSS元胞演化的灰狼优化目标向量、目标函数和优化关键算子,实现了GitHub中的OSS项目演化规则的智能获取。本发明选取了GitHub中2015年至2020年的2971个OSS项目数据进行了模拟实验,实验结果得出模拟的总体准确率较高,与真实数据具有较好的一致性。
主权项:1.一种开源软件项目的演化建模方法,其特征在于,所述方法包括以下步骤:步骤1:开源软件项目CA状态演化规则的构造与表达;步骤2:提出OSS-CA演化规则智能获取算法;步骤3:基于OSS-CA模型动态模拟GitHub项目的演化;其中,步骤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维度空间上的属性值都应该被合理地归一化到相同的值域范围内;步骤2:提出OSS-CA演化规则智能获取算法;具体如下,OSS项目元胞状态的特征向量X优化求解即在每一类元胞状态转换特征向量上寻找一个最优的属性取值区间,利用寻求到的最优属性取值区间对特征属性满足相应的取值范围的元胞状态进行转变,实现元胞状态转变的模拟,灰狼种群位置初始化完成后,最为关键的步骤就是灰狼位置与目标函数值的更新迭代,这在算法求解CA演化规则过程中至关重要,在完成元胞特征向量X的灰狼位置Positions初始化完成后,需对初始化的灰狼位置和目标函数不断地进行迭代优化,以期通过灰狼位置和目标函数值迭代更新挖掘出较优的特征向量X,当寻找的新的猎物时,计算新猎物的收益度即相应演化规则的质量,如果新猎物具有更高质量,则更新自身所对应的搜索位置即元胞特征向量,当灰狼完成一次规则搜索过程之后,每只灰狼都会计算目标函数值并决定下一次的搜索是否更新灰狼的位置,如此反复地进行猎物的搜索,直到满足规则挖掘要求条件;规则质量评价算子是OSS-CA演化规则获取质量的评价检验标准,即是灰狼狩猎的猎物价值量,规则质量评价算子决定了OSS-CA算法求解优化的内容与方向.据相关研究表明,基尼指数fitness是一种适用于规则质量评价的重要指标,其计算方式为: 式中:TP表示满足规则条件,且与规则预测的软件项目元胞类型相同的样本个数;FP表示不满足规则条件,且与规则预测的元胞类型相同的样本个数;FN表示不满足规则条件,且与规则预测的元胞类型不同的样本个数;TN表示表示满足规则条件,且与规则预测的元胞类型不同的样本个数;步骤3:基于OSS-CA模型动态模拟GitHub项目的演化,具体如下,OSS-CA演化规则智能获取算法在运算求解时需输入一个样本数据集,除了对每一个项目数据的整理,对于三个月内刚刚被创建的项目,认为它处于“新生”状态,用数字“0”标记它,CellStatus={0};对于创建时间超过个月,且各项属性值处于上升状态中的项目,认为它处于“发展”状态,用数字“1”标记它,CellStatus={1};对于创建时间超过六个月,且各项属性值已有三个月未发生明显变化的项目,认为它处于“衰败”状态,用数字“2”标记它,CellStatus={2};在软件生态系统中,大多数项目都是相互依赖的,当用户在一个项目的PullRequest操作、Issue操作或CommitComment操作中提到另一个项目时,认为这两个项目之间存在依赖关系,通过Numberofexternallinks属性值可以方便地知道,OSS项目之间存在的交叉引用关系,OSS项目演化模拟过程中,OSS项目元胞的演化情况除了与演化规则相关,还与各种随机条件有关,在OSS-CA算法模型中引入随机变量γ,使得γK,K为当前迭代次数T的倒数,并符合以下公式:K=1T;当同时满足演化条件及γK时,元胞状态才会发生改变,该随机变量的加入可动态实现元胞空间中某个空间元胞位置上的元胞状态的随机动态转换,较好地体现了OSS项目动态演化的随机性特点。
全文数据:
权利要求:
百度查询: 东南大学 一种开源软件项目的演化建模方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。