CN113095466A - 基于元学习模型的可满足性模理论求解器的算法 - Google Patents
基于元学习模型的可满足性模理论求解器的算法 Download PDFInfo
- Publication number
- CN113095466A CN113095466A CN202110388054.XA CN202110388054A CN113095466A CN 113095466 A CN113095466 A CN 113095466A CN 202110388054 A CN202110388054 A CN 202110388054A CN 113095466 A CN113095466 A CN 113095466A
- Authority
- CN
- China
- Prior art keywords
- smt
- solver
- meta
- model
- training
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Machine Translation (AREA)
Abstract
本发明提供一种基于元学习模型的可满足性模理论求解器的算法,属于软件工程领域。该方法首先使用多目标演化算法生成多样性SMT实例;再通过元学习模型自动学习SMT实例特征和求解器之间的映射关系以形成元知识库;最终当输入新的SMT实例时,通过已学习到的先验知识预测适合该实例的最佳SMT求解器。本发明生成的SMT实例可以有效分析不同求解器的优势和局限性,并通过学习不同求解器的性能差异,自动且高精度地为给定SMT实例选择一个性能最佳的SMT求解器,极大的节省了时间和资源。
Description
技术领域
本发明属于软件工程领域,涉及一种求解器的算法选择,具体为基于元学习模型的可满足性模理论(Satisfiability Modulo Theories,SMT)求解器的算法选择。
背景技术
随着SMT背景理论的逐渐成熟及SMT问题判定算法的不断发展,SMT求解器已经广泛应用于软件工程、人工智能等领域,详见参考C S,Visser W.A survey ofnew trends in symbolic execution for software testing and analysis[J].International journal on software tools for technology transfer,2009,11(4):339-353和Katz G,Barrett C,Dill D L,et al.Reluplex:An efficient SMT solver forverifying deep neural networks[C]//International Conference on Computer AidedVerification.Springer,Cham,2017:97-117。但是不同的求解器在不同类型的问题实例上有性能差异,用户须依次执行所有可供选择的求解器才能确定哪种求解器最适合其特定情况,这导致了时间和资源的消耗,详见由Scott J,Niemetz A,Preiner M,et al.MachSMT:AMachine Learning-based Algorithm Selector for SMT Solvers[J].Tools andAlgorithms for the Construction and Analysis of Systems,2020,12652:303。因此,最佳SMT求解器的选择变得迫切且重要。SMT求解器的算法选择定义如下:给出一个需要解决的特定SMT实例以及一组用于解决该问题的SMT求解器,找到实例特征和求解器之间的映射关系,从而预测哪种求解器算法在该实例上表现最佳。对于SMT实例,是指决定逻辑公式的可满足性的问题,以一阶理论的组合表示。对于SMT求解器,是指一种用于确定一阶逻辑公式在组合理论背景下(例如位向量,浮点数,整数,实数,字符串,数组及其组合)可满足性的工具,大多数SMT求解器都支持SMT-LIB语言标准。
SMT求解器的算法选择可以解决不同求解器具有性能差异的问题,使用户在面对新的SMT实例时可以更快更准确的找到适合该实例的最佳求解器。现有研究大都是生成需较长时间才能求解出的SMT实例,实例难度不足以区分不同算法性能,详见Blotsky D,MoraF,Berzish M,et al.Stringfuzz:A fuzzer for string solvers[C]//InternationalConference on Computer Aided Verification.Springer,Cham,2018:45-51.,且已有的算法性能评价严重依赖基准实例,存在过拟合的风险;另一方面,现有的SMT求解器的算法选择工具虽然已具备较高的准确率,但是仍然存在着泛化性较差、难以学习和适应新的SMT实例、较为依赖大规模数据等问题。
发明内容
为解决上述问题,本发明提供了一种基于元学习模型的可满足性模理论求解器的算法选择方法。本发明通过多目标演化算法生成多样性SMT实例,随后基于元学习思想对SMT求解器进行算法选择。
本发明的技术方案:
一种基于元学习模型的可满足性模理论求解器的算法选择方法,步骤如下:
步骤1:使用多目标演化算法生成多样性SMT实例
本发明实现了一种多目标演化算法,将种子SMT实例变异为需要花费不同时长才能解决的实例。目标函数分别是针对三种求解器生成三个不同难易程度的实例,实例难度以求解器求解时长为衡量指标:0s-1s为容易,1s-5s为一般,5s以上为困难。种子SMT实例来源于SMT-LIB基准数据集,由于实例片段很难直接处理,因此使用抽象语法树(AbstractSyntax Tree,AST)表示实例片段的内在结构,对其进行编码。针对每种理论背景下的SMT实例,具体流程如下:
(1)初始化种群P和P',其中P'为空;
(2)从种群P中随机选取两个实例作为parent,对实例进行变异操作,包括4种形式:交换(即随机交换两个相同属性的子树)、删除(随机删除一条assert语句)、添加(随机添加一条assert语句)、替换(随机替换字符或者数字);
(3)计算适应度函数,本发明中适应度函数为求解器在实例上的求解时间,求解时间是求解器在实例上的平均求解时间,这样可以消除求解器运行中的任何异常情况;
(4)筛选符合条件的SMT实例,即针对每种求解器,求解时间符合三种难易程度的实例,添加到种群P',然后将新生成的实例同样添加至种群P中;
(5)判断是否满足终止条件,即新种群是否达到预期大小,如满足则输出新种群,不满足,返回步骤ii,继续循环。
步骤2:基于元学习思想对SMT求解器进行算法选择
从步骤1中通过多目标演化算法得到了对于每种求解器不同难易程度的SMT实例后,将两者输入到元学习器进行训练,以获得SMT实例特征与不同求解器性能间的映射关系,形成元知识库;算法的选择需要依靠元知识的指导,当输入新的SMT实例时,可以通过已学习到的先验知识(即已训练好的模型参数)预测适合该实例的最优的算法。具体流程如下:
(1)数据集的划分
在元学习中,数据表现为集合(set)的形式,我们将数据集划分为两部分:训练集和测试集。训练集包含两组样本:支持集(support set)和查询集(query set),二者共同构成了一个任务(task)。支持集使用N-way,K-shot的方式进行元学习的训练,使得模型学习到“先验知识”,即初始化的参数,其中N-way表示训练数据中有N个求解器类别,K-shot表示每个类别下有K个被标记的SMT实例,本发明中N和K均设置为3。查询集中包含未分类的SMT实例。神经网络在经过训练后,学习到了区分不同类别的先验知识,这样在测试集中,只要通过少量的微调(fine-tune),就可以快速得到适合该SMT实例的最佳求解器。
(2)元学习模型的训练过程
在训练集中随机抽取3-way,3-shot样本作为支持集,剩余样本为查询集;对一个任务采样后进行训练,称为一个episode;一个batch由若干个任务组成,每次meta-train可以训练多个batch;遍历所有batch后即完成训练。
上述训练过程中,为了解决长距离依赖问题,学习器(learner)采用了长短期记忆(Long short-term memory,LSTM)神经网络。为了快速且有效适应不同SMT实例,元学习器(meta-learner)采用了MAML模型,用于更新长短期记忆神经网络中的初始化参数,MAML基于二重梯度(gradient by gradient),第一种梯度下降是针对每个任务执行的,第二种梯度下降针对每个batch完成第一种梯度下降后执行的,具体算法流程如下:
1)随机初始化模型参数(不包括超参数);
2)采样一个batch,对于每个batch中的任务进行第一次梯度更新;
3)使用一个任务的支持集进行训练,通过前向传播、计算梯度、反向传播的过程对参数进行更新,此时完成第一次梯度更新;
4)接下来进行第二次梯度更新,使用查询集计算一个batch的loss总和,然后计算出的梯度直接通过随机梯度下降(Stochastic Gradient Descent,SGD)作用于原模型上,用于更新其参数。
5)模型在该batch中的训练结束,返回步骤(2),继续采样下一个batch。
在训练过程中,每个episode都会得到不同理论背景下不同难度的SMT实例及其对应的最佳求解器,这使得训练集中包含了不同的类别组合,这种机制下模型学会了不同任务中的共性部分,从而在面对新的未见过的SMT实例时,也能快速的找到对应的最佳求解器。
(3)最佳SMT求解器的预测
在测试集中随机抽取3个求解器,每个求解器下3个不同难度的样本作为支持集,剩余样本作为查询集。在支持集中,通过利用上一阶段训练好的初始化参数对模型进行微调后,使用查询集(即需要被分类的新SMT实例)来测试模型。
本发明的有益效果:本发明能够针对特定SMT实例,快速且高效的为其选择最佳求解器,极大的节省了时间和资源。其次,本发明生成的多样性SMT实例在丰富已有的SMT数据库的同时,可以有效分析每种SMT求解器擅长解决的实例类型,对SMT求解器算法选择的研究具有重要意义。
附图说明
图1是本发明中使用多目标演化算法生成多样性SMT实例的流程示意图。
图2是本发明中基于元学习思想对SMT求解器进行算法选择的框架示意图。
图3是本发明中数据集划分的框架示意图。
具体实施方式
以下结合附图和技术方案,进一步说明本发明的具体实施方式。
步骤1:使用多目标演化算法生成多样性SMT实例
本发明实现了一种多目标演化算法,将种子SMT实例变异为需要求解器花费不同时长才能解决的实例。种子SMT实例来源于SMT-LIB基准数据集,基本格式如下:
(set-logic QF_LIA)
(declare-const x(Int))
(assert(forall((i Int))(>i 10)))
(check-sat)
其中,set-logic语句设置SMT实例的背景理论,此处为整数集上的线性算数理论,declare-const命令用于申明一个给定类型的常量,assert表达约束,check-sat命令告诉求解器去求解当前公式的可满足性,如果公式可满足,则返回sat,如果不满足,则返回unsat。
如图1所示,针对每种理论背景,使用多目标演化算法生成多样性SMT实例的流程如下:
1)初始化种群P和P';
2)从种群P中随机选取两个实例作为parent,对实例进行变异操作;
3)计算适应度函数;
4)筛选符合条件的SMT实例添加到种群P',然后将新生成的实例同样添加至种群P中;
5)判断是否满足终止条件,即新种群是否达到预期大小,如满足则输出新种群,不满足,返回步骤ii,继续循环。
步骤2:基于元学习思想对SMT求解器进行算法选择
如图2所示,在步骤1中通过多目标演化算法得到了对于每种求解器不同难易程度的SMT实例后,将两者输入到元学习器进行训练,以获得SMT实例特征与不同求解器性能间的映射关系,形成元知识库;算法的选择需要依靠元知识的指导,当输入新的SMT实例时,可先对其特征进行提取,然后基于先验知识预测适合该实例的最优算法。具体流程如下:
(1)数据集的预处理
如图3所示,数据划分为训练集和测试集,训练集中包含两组样本:支持集(support set)和查询集(query set),二者共同构成了一个任务(task),每个任务中的实例均为同一理论背景,图3中矩形框表示SMT实例。支持集使用N-way,K-shot的方式进行元学习的训练,使得模型学习到“先验知识”,即初始化的参数,其中N-way表示训练数据中有N个求解器的类别,本发明中N设置为3,即Z3、CVC4和Yices,三者均为目前主流SMT求解器,且在国际满意度模理论竞赛(SMT-COMP)中都取得了不错的成绩。K-shot表示每个类别下有K个被标记的SMT实例,本发明中K设置为3,表示实例的三种难易程度:简单、一般、困难。查询集中包含未分类的SMT实例,且测试集与训练集不同,仅含有一个任务。
(2)元学习模型的训练过程
从训练集中随机抽取3-way,3-shot样本作为支持集,剩余样本为查询集;对一个任务采样后进行训练,若干个任务组成一个batch,遍历所有batch后即完成训练。
上述训练过程中,为了解决长距离依赖问题,学习器采用了长短期记忆神经网络。为了快速且有效适应不同SMT实例,元学习器采用了MAML模型,用于更新长短期记忆神经网络中的初始化参数,MAML基于二重梯度,第一种梯度下降是针对每个任务执行的,第二种梯度下降针对每个batch完成第一种梯度下降后执行的,具体算法流程如下:
1)随机初始化模型参数(不包括超参数);
2)采样一个batch,对于每个batch中的任务进行第一次梯度更新;
3)使用一个任务的支持集进行训练,通过前向传播、计算梯度、反向传播的过程对参数进行更新,此时完成第一次梯度更新;
4)接下来进行第二次梯度更新,使用查询集计算一个batch的loss总和,然后计算出的梯度直接通过随机梯度下降作用于原模型上,用于更新其参数。
5)模型在该batch中的训练结束,返回步骤2),继续采样下一个batch。
(3)最佳SMT求解器的预测
在测试集中随机抽取3种求解器,每个求解器下包含3种不同难度的SMT实例作为支持集,剩余样本作为查询集;在支持集中,通过利用meta-train阶段训练好的初始化参数对模型进行微调后,输入查询集中新的SMT实例即可得到其对应的最佳求解器。
Claims (1)
1.一种基于元学习模型的可满足性模理论求解器的算法,其特征在于,步骤如下:
步骤1:使用多目标演化算法生成多样性SMT实例
使用多目标演化算法将种子SMT实例变异为需要求解器花费不同时长才能解决的实例;目标函数分别是针对三种求解器生成三个不同难易程度的实例,实例难度以求解器求解时长为衡量指标;种子SMT实例来源于SMT-LIB;
由于实例很难直接处理,因此使用抽象语法树表示实例片段的语法结构,对其进行编码,树上的每个节点都表示实例中的一种结构;
使用多目标演化算法生成多样性SMT实例,针对每种理论背景下的SMT实例,具体流程如下:
(1)初始化种群P和P',其中P'为空;
(2)从种群P中随机选取两个实例作为parent,对实例进行变异操作,包括4种形式:交换即随机交换两个相同属性的子树、删除即随机删除一条assert语句、添加即随机添加一条assert语句、替换即随机替换字符或数字;
(3)计算适应度函数,本方法中适应度函数为求解器在实例上的求解时间,求解时间是求解器在实例上的平均求解时间,消除求解器运行中的任何异常情况;
(4)筛选符合条件的SMT实例,即针对每种求解器,求解时间符合三种难易程度的实例,添加到种群P',然后将新生成的实例同样添加至种群P中;
判断是否满足终止条件,即新种群是否达到预期大小,如满足则输出新种群P',不满足则返回步骤(2),继续循环;
步骤2:基于元学习思想对SMT求解器进行算法选择
在步骤1中通过多目标演化算法得到对于每种求解器不同难易程度的SMT实例后,将两者输入到元学习器进行训练,以获得SMT实例特征与不同求解器性能间的映射关系,形成元知识库;算法的选择需要依靠元知识的指导,当输入新的SMT实例时,先对其特征进行提取,然后通过已学习到的先验知识预测适合该实例的最佳SMT求解器;
基于元学习思想对SMT求解器进行算法选择的具体操作为:
(1)数据集的划分
在元学习中,数据表现为集合的形式,数据集被划分为两部分:训练集和测试集;训练集包含两组样本:支持集和查询集,二者共同构成一个任务;支持集使用N-way、K-shot的方式进行元学习的训练,使模型学习到“先验知识”,即初始化的参数,其中N-way表示训练数据中有N个求解器类别,N设置为3,即Z3、CVC4和Yices;K-shot表示每个求解器下有K个被标记的SMT实例,K设置为3,表示实例的三种难易程度:简单、一般、困难;查询集中包含未分类的SMT实例;元学习器在经过训练后,学习到求解器之间的性能差异,这样在测试集中,只要通过少量的微调,就快速得到适合该SMT实例的最佳求解器;
(2)元学习模型的训练过程
在训练集中随机抽取3-way,3-shot样本作为支持集,剩余样本为查询集;对一个任务采样后进行训练,称为一个episode;一个batch由若干个任务组成,每次meta-train训练多个batch,遍历所有batch后即完成训练;
上述训练过程中,为了解决长距离依赖问题,学习器采用长短期记忆神经网络;为了快速且有效适应不同SMT实例,元学习器采用MAML模型,用于更新长短期记忆神经网络中的初始化参数,MAML基于二重梯度,第一种梯度下降是针对每个任务执行的,第二种梯度下降针对每个batch完成第一种梯度下降后执行的,具体算法流程如下:
1)随机初始化模型参数,不包括超参数;
2)采样一个batch,对于每个batch中的任务进行第一次梯度更新;
3)使用一个任务的支持集进行训练,通过前向传播、计算梯度、反向传播的过程对参数进行更新,此时完成第一次梯度更新;
4)接下来进行第二次梯度更新,使用查询集计算一个batch的loss总和,计算出的梯度直接通过随机梯度下降作用于原模型上,用于更新其参数;
5)模型在该batch中的训练结束,返回步骤2),继续采样下一个batch;
在训练过程中,每个episode都会得到不同理论背景下不同难度的SMT实例及其对应的最佳求解器,使得训练集中包含不同的类别组合,这种机制使模型学会不同任务中的共性部分,从而在面对新的未见过的SMT实例时,也能快速的找到对应的最佳求解器;
(3)最佳SMT求解器的预测
在测试集中随机抽取3个求解器,每个求解器下3个不同难度的样本作为支持集,剩余样本作为查询集;在支持集中,通过利用上一阶段训练好的初始化参数对模型进行微调后,使用查询集来测试模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110388054.XA CN113095466A (zh) | 2021-04-12 | 2021-04-12 | 基于元学习模型的可满足性模理论求解器的算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110388054.XA CN113095466A (zh) | 2021-04-12 | 2021-04-12 | 基于元学习模型的可满足性模理论求解器的算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113095466A true CN113095466A (zh) | 2021-07-09 |
Family
ID=76676425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110388054.XA Pending CN113095466A (zh) | 2021-04-12 | 2021-04-12 | 基于元学习模型的可满足性模理论求解器的算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113095466A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114827174A (zh) * | 2022-04-28 | 2022-07-29 | 深圳赛宝工业技术研究院有限公司 | 面向社会制造的制造资源一实多虚同步方法及系统 |
CN115618953A (zh) * | 2022-11-07 | 2023-01-17 | 北京百度网讯科技有限公司 | 量子门的频率确定方法、装置、设备以及存储介质 |
-
2021
- 2021-04-12 CN CN202110388054.XA patent/CN113095466A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114827174A (zh) * | 2022-04-28 | 2022-07-29 | 深圳赛宝工业技术研究院有限公司 | 面向社会制造的制造资源一实多虚同步方法及系统 |
CN114827174B (zh) * | 2022-04-28 | 2024-05-07 | 深圳赛宝工业技术研究院有限公司 | 面向社会制造的制造资源一实多虚同步方法及系统 |
CN115618953A (zh) * | 2022-11-07 | 2023-01-17 | 北京百度网讯科技有限公司 | 量子门的频率确定方法、装置、设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Knowles | ParEGO: A hybrid algorithm with on-line landscape approximation for expensive multiobjective optimization problems | |
US20200167659A1 (en) | Device and method for training neural network | |
CN110571792A (zh) | 一种电网调控系统运行状态的分析评估方法及系统 | |
KR102430483B1 (ko) | 반도체 소자의 배치를 평가하는 방법 | |
CN113095466A (zh) | 基于元学习模型的可满足性模理论求解器的算法 | |
CN115422814B (zh) | 一种数字孪生驱动的复杂机电产品闭环优化设计方法 | |
CN114861788A (zh) | 一种基于dbscan聚类的负荷异常检测方法及系统 | |
CN116187835A (zh) | 一种基于数据驱动的台区理论线损区间估算方法及系统 | |
CN113836174B (zh) | 基于强化学习dqn算法的异步sql连接查询优化方法 | |
WO2022147583A2 (en) | System and method for optimal placement of interacting objects on continuous (or discretized or mixed) domains | |
CN113656707A (zh) | 一种理财产品推荐方法、系统、存储介质及设备 | |
CN113033898A (zh) | 基于k均值聚类与bi-lstm神经网络的电负荷预测方法及系统 | |
Guo et al. | Data mining and application of ship impact spectrum acceleration based on PNN neural network | |
CN108596781A (zh) | 一种电力系统数据挖掘与预测整合方法 | |
CN114254199A (zh) | 基于二分图投影和node2vec的课程推荐方法 | |
Chen et al. | Genetic algorithms in matrix representation and its application in synthetic data | |
Mendu et al. | Gated linear model induced u-net for surrogate modeling and uncertainty quantification | |
CN113283174B (zh) | 基于算法集成与自控制的储层产能预测方法、系统及终端 | |
CN118211538B (zh) | 一种knn算法的芯片功能评估方法 | |
CN115952728B (zh) | 一种亚硝态氮浓度软测量预测方法 | |
US20220405599A1 (en) | Automated design of architectures of artificial neural networks | |
Irawan et al. | An Introduction to Many-Objective Evolutionary Optimization | |
CN112650770B (zh) | 基于query workload分析的MySQL参数推荐方法 | |
Luo et al. | BNPqte: A Bayesian Nonparametric Approach to Causal Inference on Quantiles in R | |
Chen | Research on Intelligent Data Mining and Processing System Based on Computer Genetic Algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |