一种数据结构作业程序相似性度量方法与流程

文档序号:12119606阅读:来源:国知局

技术特征:

1.一种数据结构作业程序相似性度量方法,其特征在于,包括:

对n份数据结构作业进行第一词法分析,获取每份数据结构作业中的声明块和控制块,其中所述声明块记作K1,控制块记作K2;

对每份所述数据结构作业的声明块和控制块建立第一词法分析集合V={K1,K2},其中,n个集合分别记为V1,V2,V3,...,Vn;

根据预定的相同属性的聚类规则,对V1,V2,V3,...,Vn进行重新排序合并处理,得到聚类集合,记作V+;

提取所述聚类集合V+中所有一元子集,包括:T1,T2,…,Tm;

根据合成对比规则μ对T1,T2,…,Tm进行进行合成处理,得到第一相似度,其中合并对比规则μ定义为:

对n份数据结构作业进行第二词法分析,获取每份数据结构作业中的集合结构、线性结构、树状结构和图状结构,其中集合结构、线性结构、树状结构和图状结构分别记作S1,S2,S3,S4;

对每份所述数据结构作业的集合结构、线性结构、树状结构和图状结构建立第二词法分析集合SN={S1,S2,S3,S4},其中,n个集合分别记为SN1,SN2,SN3,...,SNn;

对所述SN1,SN2,SN3,...,SNn进行标准化计算,对其计算结果依次进行协方差矩阵计算、特征根计算和主成分矩阵计算,得到n个主成分;

计算所述n个主成分的累积贡献率,并其等同为第二相似度;

对n份数据结构作业进行第三词法分析,获取n个语法树分别记为T1,T2,T3,...,Tn;

分别计算每棵语法树出从根到叶结点的一条最长路径和一条最长路径,其中,最长路径记作L(Ti),最长路径L(Ti);

计算每组L(Ti)与P(Ti)的差异值,其中,计算规则为:

dif(L(Ti),P(Ti))=|Length[L(Ti)]-Length[P(Ti)]|;

根据所述差异值,计算n棵语法树的第三相似度:计算规则为:

<mrow> <mi>S</mi> <mi>i</mi> <mi>m</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mn>1</mn> <mo>+</mo> <msup> <mrow> <mo>(</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <mi>d</mi> <mi>i</mi> <mi>f</mi> <mo>(</mo> <mrow> <mi>L</mi> <mrow> <mo>(</mo> <msub> <mi>T</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>,</mo> <mi>P</mi> <mrow> <mo>(</mo> <msub> <mi>T</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mrow> <mn>1</mn> <mo>/</mo> <mn>2</mn> </mrow> </msup> </mrow> </mfrac> <mo>;</mo> </mrow>

根据所述第一相似度、第二相似度和/或第三相似度与神经网络结合建立精确化模型;

根据所述精确化模型计算结果评价所述数据结构作业程序相似性。

2.根据权利要求1所述的数据结构作业程序相似性度量方法,其特征在于,

步骤所述根据预定的相同属性的聚类规则,对V1,V2,V3,...,Vn进行重新排序合并处理,得到聚类集合包括:

根据预定的相同属性的k-means聚类算法,对V1,V2,V3,...,Vn进行重新排序合并处理,得到聚类集合。

3.根据权利要求1所述的数据结构作业程序相似性度量方法,其特征在于,

步骤所述对所述SN1,SN2,SN3,...,SNn进行标准化计算,对其计算结果依次进行协方差矩阵计算、特征根计算和主成分矩阵计算,得到n个主成分包括:

标准化计算规则为

<mrow> <msub> <mi>Z</mi> <mi>i</mi> </msub> <mo>=</mo> <mi>&gamma;</mi> <mrow> <mo>(</mo> <msub> <mi>SN</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mn>4</mn> </munderover> <mo>|</mo> <mo>|</mo> <msub> <mi>SN</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>|</mo> <mo>-</mo> <mover> <mrow> <mo>|</mo> <msub> <mi>SN</mi> <mi>i</mi> </msub> <mo>|</mo> </mrow> <mo>&OverBar;</mo> </mover> <mo>|</mo> </mrow> <msqrt> <mrow> <mi>var</mi> <mrow> <mo>(</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mn>4</mn> </munderover> <mo>|</mo> <msub> <mi>SN</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>|</mo> <mo>)</mo> </mrow> </mrow> </msqrt> </mfrac> <mo>;</mo> </mrow>

所述协方差矩阵计算规则为:R=Z'Z/(n-1);

所述特征根计算规则为:(R-λE)e=0→(λ1,e1),(λ2,e2),...,(λn,en);

所述主成分矩阵计算规则为:Yi=eiZ,i∈[1,n]。

4.根据权利要求1所述的数据结构作业程序相似性度量方法,其特征在于,

步骤所述计算所述n个主成分的累积贡献率包括:

所述n个主成分的累计贡献率的计算规则为:

<mrow> <msub> <mi>C</mi> <mrow> <mi>&Sigma;</mi> <mi>r</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>r</mi> </munderover> <msub> <mi>&lambda;</mi> <mi>k</mi> </msub> </mrow> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <mi>&lambda;</mi> <mi>i</mi> </mrow> </mfrac> <mo>.</mo> </mrow>

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1