[发明专利]一种基于图的端到端程序修复方法有效
申请号: | 202011265976.3 | 申请日: | 2020-11-13 |
公开(公告)号: | CN112463424B | 公开(公告)日: | 2023-06-02 |
发明(设计)人: | 李斌;唐奔;孙小兵;倪珍 | 申请(专利权)人: | 扬州大学 |
主分类号: | G06F11/07 | 分类号: | G06F11/07;G06F8/70;G06F18/214;G06N20/00 |
代理公司: | 南京理工大学专利中心 32203 | 代理人: | 朱炳斐 |
地址: | 226009 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 端到端 程序 修复 方法 | ||
1.一种基于图的端到端程序修复方法,其特征在于,所述方法包括以下步骤:
步骤1,构建缺陷数据集;
步骤2,进行缺陷程序切片,提取与缺陷语句相关的上下文;
步骤3,进行缺陷代码图嵌入,将缺陷语句及其上下文转化为可供学习的图形结构;
步骤4,构建并训练Graph2Seq模型;具体过程包括:
所述Graph2Seq模型,包括图编码器和序列解码器两部分;
(1)构建图编码器,具体包括:
步骤4-1,输入步骤3-1得到的缺陷代码图,添加全局结点global并初始化,该结点与图中所有结点直接相连;
步骤4-2,将上述代码图转化为最短路径图:对于任意两个结点i、j,计算两者之间的最短路径,得到结点之间的路径图;
步骤4-3,结点i、j之间的关系定义为两个结点之间的路径,将路径图中的边表示为边结点,用边结点插入到原结点之间替换原有的边,则结点i和结点j之间的最短关系路径表示为:
spi→j=[e(i,k1),e(k1,k2),...,e(kn,j)]
或spj→i=[e(j,k1),e(k1,k2),...,e(kn,i)]
式中,spi→j表示结点i到结点j之间的关系路径,spj→i表示结点j到结点i之间的关系路径,若记spi→j为结点i和结点j之间的正向最短关系路径,则spj→i为结点i和结点j之间的正向最短关系路径,e(·,·)代表边的标签即两个结点之间相连的边的类型,k表示中继结点,ki表示第i个中继结点,i=1,2,...,n,n表示结点i和结点j关系路径上结点数量;
步骤4-4,进行关系编码;
利用双向GRU模型对关系路径信息进行序列编码:
式中,t为当前时间步,为t时刻正向状态向量,为t时刻反向状态向量,f代表正向路径,b代表反向路径,spt指t时刻的最短关系路径;GRU为门控循环单元,其能根据前一时刻结点状态向量和当前时刻的输入计算得出当前时刻的结点状态向量;
则结点i、j之间的关系编码表示为:
即在运行n个时间步后,n时刻的正向状态向量和0时刻的反向状态向量拼接组成结点之间的关系向量;
步骤4-5,结点位置信息嵌入,计算每一个结点与其所在AST树中根结点之间的距离,使用位置编码对距离信息进行编码,与步骤3-3中得到的结点词向量连接,得到初始结点向量表示;
步骤4-6,结合步骤4-4得到的结点间关系向量rij和步骤4-6得到的初始结点向量表示,计算结点之间全局注意力得分sij:
将上述公式展开得:
式中,xi、xj分别为结点i和结点j的初始结点向量表示,ri→j和rj→i分别表示结点间关系向量rij的正向部分和反向部分,为查询向量的转置,Wk为键向量,查询向量和键向量由词嵌入和对应的权重矩阵相乘后创建;该公式中四个子式从左至右分别表征了结点内容相关性、源导向的关系偏置、目标导向的关系偏置、一般关系偏置;
拆分出的四个子式分别表征了结点内容相关性、源导向的关系偏置、目标导向的关系偏置、一般关系偏置;
(2)构建序列解码器:解码器根据编码器学习所得向量表示预测生成的序列中当前位置可能出现的token及其出现概率,顺序进行这个过程得到候选token序列及其生成概率,具体包括:
步骤4-7,根据步骤4-6得到的全局注意力得分sij和当前预测位置之前生成的token序列,预测当前位置可能出现的token;
步骤4-8,重复进行步骤4-7的token预测过程,通过步骤2-2中插入的特殊标记控制token预测过程的起止,序列解码器的输出是候选token序列及其对应的概率;
(3)训练Graph2Seq模型
步骤4-10,计算概率最大的候选token序列与训练集中真实值的损失值loss,根据损失值loss,利用梯度下降法更新上述步骤所构建的Graph2Seq模型中的参数;
步骤5,利用训练好的Graph2Seq模型生成修复补丁并验证补丁的正确性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于扬州大学,未经扬州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011265976.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种Y向四导轨结构
- 下一篇:一种合成锑化铝多晶材料工艺的装置及合成方法