0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

蚁群算法在验证用例自动化回归中的应用有哪些?

sanyue7758 来源:阿辉说 2023-10-07 16:58 次阅读

背景:如今的芯片规模越来越大,功能也愈加复杂。相应的验证用例也越来越复杂,用例动态仿真耗时也随之增加,而且个数有时动辄上百个。

在验证回归过程中,如何提高效率成为广大验证工程师不得不考虑的问题。

本文尝试在验证工作中,通过蚁群算法优化用例回归序列,尽量缩短回归时间,同时提高用例回归的自动化程度。

(一)问题描述

假设当前有108个用例需要回归,并且我们有先前用例仿真的日志文件:日志文件中有该用例仿真的耗时信息

按照传统做法,我们可能首先打开十多个terminal(比如15个),平均每个terminal分配若干用例(比如7个),根据用例名的字典序回归用例。

在大多数情况下,会有个别terminal中分配的用例很快或较快的回归完,而其余几个terminal时间却又很长,迟迟不能完成,时间最长的那个terminal决定了一次回归所用的总时间。

那么,是否可以找到更好的回归队列分配给各个terminal, ***使得回归总时间最短*** ?

(二)问题转化

现在,问题就可以转化为:108个耗时不等的任务,分配给15个并行队列,求15个队列的任务序列组合,使得15个队列的总耗时最小;这个任务分配问题可以进一步引申为**负载调度**问题,108个任务分配给15台性能各异(或同等)的服务器。

上面是从时间角度进行的问题转化,也可以从空间角度考虑,把用例耗时对应空间大小,把问题转化为 **存储问题** ,本文暂不研究。

(三)问题解决

我们参考作者的JavaScript代码,考虑用perl实现算法的核心代码。具体步骤如下:

1)提取时间信息:即从仿真日志里提取时间信息,分两步①粗提取,这个使用shell命令即可,可以放到makefile中;②准确提取,在刚刚的makefile中调用perl脚本,在perl脚本中利用perl强大的文本处理能力提取准确的时间信息,存入一个哈希%Case_hash(键-用例名,值-用例对应的时间)中。

2)蚁群算法的perl实现:除了刚刚得到的哈希数组%Case_hash,我们还要给定队列数目QueneNum,这是蚁群算法的输入。同时,蚁群算法还涉及蚂蚁数量AntNum,迭代次数ItNum,随机因子等参数,参考文献[1]中有详细说明,这里不再赘述。 最终,蚁群算法会得到最优的任务分配矩阵,我们通过这个矩阵就可以知道每个队列分配了那几个用例。

3)回归队列生成:得到用例回归队列后,将这些队列以target形式写入新的makefile中(sub_makefile,在主makefile中include这个sub_makefile)。

4)自动回归:刚刚生成了sub_makefile,我们再新建一个脚本,实现“自动打开指定个数terminal,在每个terminal自动输入相应回归命令(make)即可”。

(四)问题的问题

在perl实现蚁群算法时,矩阵的处理可能会稍微麻烦一些,这里使用了哈希嵌套的做法[2]。

另外,在实际应用中,蚁群算法有以下问题①在有限迭代次数内,算法不收敛;②算法收敛,但得到的最优解是**局部最优解**,非全局最优解。局部最优解是传统蚁群算法的缺点之一。实际使用时可以折衷考虑,适当 *增大迭代次数* ,同时提高蚁群的 *随机性* ,在有限的迭代次数内*持续搜寻最短时间的任务分配方案。*






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 仿真器
    +关注

    关注

    14

    文章

    1016

    浏览量

    83612
  • JAVA
    +关注

    关注

    19

    文章

    2954

    浏览量

    104511
  • 蚁群算法
    +关注

    关注

    3

    文章

    55

    浏览量

    13186

原文标题:蚁群算法在验证用例自动化回归中的应用

文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    算法基本原理及其应用实例

    算法是一种仿生学算法,其灵感来源于蚂蚁寻找食物过程中发现路径的行为。
    发表于 02-02 09:44 9.3w次阅读
    <b class='flag-5'>蚁</b><b class='flag-5'>群</b><b class='flag-5'>算法</b>基本原理及其应用实例

    NHLERE:应用算法的WSN路由算法

    【摘要】:针对WSN中节点能量有限及节点间链路随机损耗特点,提出一种基于算法的用于无限传感器网络的路由算法-NHLERE,利用
    发表于 04-24 10:05

    MATLAB算法程序汇集篇

    MATLAB算法程序汇集篇
    发表于 03-30 18:02

    有没有算法的matlab编程代码

    图像处理的是算法或者是基于对数图像处理理论。。木有这两种算法的实现代码。。有的话发到我邮
    发表于 04-03 09:45

    大家来讨论一下算法实现路径规划的硬件实现问题

    本帖最后由 gk320830 于 2015-3-8 06:44 编辑 大家来讨论一下算法实现路径规划的硬件实现问题,不仅仅是m
    发表于 04-26 17:19

    回归算法哪些,常用回归算法(3种)详解

    。通常来说,事件可被表示为类别因变量。事件的概率 logit 函数(Sigmoid 函数)表示: 现在的目标是估计权重 W=(w1,w2,...,wn) 和偏置项 b。逻辑回归中,使用最大似然估计量或
    发表于 07-28 14:36

    算法参数优化

    针对算法运行参数选取问题,提出一种利用粒子群优化算法
    发表于 04-22 08:42 28次下载

    算法及其应用

    该论文讲解介绍了算法的定义及其应用。
    发表于 12-25 15:03 11次下载

    算法文本聚类中的应用研究

    算法文本聚类中的应用研究_张海涛
    发表于 01-03 17:41 0次下载

    杂草_算法应急管理中的应用

    杂草_算法应急管理中的应用_曹磊
    发表于 01-07 20:49 0次下载

    基于算法的迭代思想的信息素更新规则

    问题和dantzig42问题两个例子的仿真实验对比基本算法。实验结果表明,改进的算法
    发表于 11-17 17:30 13次下载
    基于<b class='flag-5'>蚁</b><b class='flag-5'>群</b><b class='flag-5'>算法</b>的迭代思想的信息素更新规则

    算法是什么能做什么_算法的优势在哪里?

    算法是一种智能算法,也是启发式算法。基本原理来源于自然界蚂蚁觅食的最短路径原理。
    发表于 02-02 09:12 2.8w次阅读
    <b class='flag-5'>蚁</b><b class='flag-5'>群</b><b class='flag-5'>算法</b>是什么能做什么_<b class='flag-5'>蚁</b><b class='flag-5'>群</b><b class='flag-5'>算法</b>的优势在哪里?

    算法解决tsp问题

    控制算法走向的关键是信息素,信息素类似遗传算法的适应性函数,类似退火算法的评价函数,影响着其中一只蚂蚁的下一步的选择。
    发表于 02-02 12:47 7491次阅读

    算法的基本原理及其改进算法.ppt

    算法的基本原理及其改进算法.ppt
    发表于 04-23 14:28 6次下载
    <b class='flag-5'>蚁</b><b class='flag-5'>群</b><b class='flag-5'>算法</b>的基本原理及其改进<b class='flag-5'>算法</b>.ppt

    算法LEACH路由协议中的应用_段军

    算法LEACH路由协议中的应用_段军(不进系统没事进入系统电源自动断)-
    发表于 07-26 12:25 13次下载
    <b class='flag-5'>蚁</b><b class='flag-5'>群</b><b class='flag-5'>算法</b><b class='flag-5'>在</b>LEACH路由协议中的应用_段军