0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

蟻群算法在驗(yàn)證用例自動(dòng)化回歸中的應(yīng)用有哪些?

sanyue7758 ? 來(lái)源:阿輝說(shuō) ? 2023-10-07 16:58 ? 次閱讀

背景:如今的芯片規(guī)模越來(lái)越大,功能也愈加復(fù)雜。相應(yīng)的驗(yàn)證用例也越來(lái)越復(fù)雜,用例動(dòng)態(tài)仿真耗時(shí)也隨之增加,而且個(gè)數(shù)有時(shí)動(dòng)輒上百個(gè)。

在驗(yàn)證回歸過(guò)程中,如何提高效率成為廣大驗(yàn)證工程師不得不考慮的問(wèn)題。

本文嘗試在驗(yàn)證工作中,通過(guò)蟻群算法優(yōu)化用例回歸序列,盡量縮短回歸時(shí)間,同時(shí)提高用例回歸的自動(dòng)化程度。

(一)問(wèn)題描述

假設(shè)當(dāng)前有108個(gè)用例需要回歸,并且我們有先前用例仿真的日志文件:日志文件中有該用例仿真的耗時(shí)信息。

按照傳統(tǒng)做法,我們可能首先打開(kāi)十多個(gè)terminal(比如15個(gè)),平均每個(gè)terminal分配若干用例(比如7個(gè)),根據(jù)用例名的字典序回歸用例。

在大多數(shù)情況下,會(huì)有個(gè)別terminal中分配的用例很快或較快的回歸完,而其余幾個(gè)terminal時(shí)間卻又很長(zhǎng),遲遲不能完成,時(shí)間最長(zhǎng)的那個(gè)terminal決定了一次回歸所用的總時(shí)間。

那么,是否可以找到更好的回歸隊(duì)列分配給各個(gè)terminal, ***使得回歸總時(shí)間最短*** ?

(二)問(wèn)題轉(zhuǎn)化

現(xiàn)在,問(wèn)題就可以轉(zhuǎn)化為:108個(gè)耗時(shí)不等的任務(wù),分配給15個(gè)并行隊(duì)列,求15個(gè)隊(duì)列的任務(wù)序列組合,使得15個(gè)隊(duì)列的總耗時(shí)最小;這個(gè)任務(wù)分配問(wèn)題可以進(jìn)一步引申為**負(fù)載調(diào)度**問(wèn)題,108個(gè)任務(wù)分配給15臺(tái)性能各異(或同等)的服務(wù)器。

上面是從時(shí)間角度進(jìn)行的問(wèn)題轉(zhuǎn)化,也可以從空間角度考慮,把用例耗時(shí)對(duì)應(yīng)空間大小,把問(wèn)題轉(zhuǎn)化為 **存儲(chǔ)問(wèn)題** ,本文暫不研究。

(三)問(wèn)題解決

我們參考作者的JavaScript代碼,考慮用perl實(shí)現(xiàn)算法的核心代碼。具體步驟如下:

1)提取時(shí)間信息:即從仿真日志里提取時(shí)間信息,分兩步①粗提取,這個(gè)使用shell命令即可,可以放到makefile中;②準(zhǔn)確提取,在剛剛的makefile中調(diào)用perl腳本,在perl腳本中利用perl強(qiáng)大的文本處理能力提取準(zhǔn)確的時(shí)間信息,存入一個(gè)哈希%Case_hash(鍵-用例名,值-用例對(duì)應(yīng)的時(shí)間)中。

2)蟻群算法的perl實(shí)現(xiàn):除了剛剛得到的哈希數(shù)組%Case_hash,我們還要給定隊(duì)列數(shù)目QueneNum,這是蟻群算法的輸入。同時(shí),蟻群算法還涉及螞蟻數(shù)量AntNum,迭代次數(shù)ItNum,隨機(jī)因子等參數(shù),參考文獻(xiàn)[1]中有詳細(xì)說(shuō)明,這里不再贅述。 最終,蟻群算法會(huì)得到最優(yōu)的任務(wù)分配矩陣,我們通過(guò)這個(gè)矩陣就可以知道每個(gè)隊(duì)列分配了那幾個(gè)用例。

3)回歸隊(duì)列生成:得到用例回歸隊(duì)列后,將這些隊(duì)列以target形式寫(xiě)入新的makefile中(sub_makefile,在主makefile中include這個(gè)sub_makefile)。

4)自動(dòng)回歸:剛剛生成了sub_makefile,我們?cè)傩陆ㄒ粋€(gè)腳本,實(shí)現(xiàn)“自動(dòng)打開(kāi)指定個(gè)數(shù)terminal,在每個(gè)terminal自動(dòng)輸入相應(yīng)回歸命令(make)即可”。

(四)問(wèn)題的問(wèn)題

在perl實(shí)現(xiàn)蟻群算法時(shí),矩陣的處理可能會(huì)稍微麻煩一些,這里使用了哈希嵌套的做法[2]。

另外,在實(shí)際應(yīng)用中,蟻群算法有以下問(wèn)題①在有限迭代次數(shù)內(nèi),算法不收斂;②算法收斂,但得到的最優(yōu)解是**局部最優(yōu)解**,非全局最優(yōu)解。局部最優(yōu)解是傳統(tǒng)蟻群算法的缺點(diǎn)之一。實(shí)際使用時(shí)可以折衷考慮,適當(dāng) *增大迭代次數(shù)* ,同時(shí)提高蟻群的 *隨機(jī)性* ,在有限的迭代次數(shù)內(nèi)*持續(xù)搜尋最短時(shí)間的任務(wù)分配方案。*






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 仿真器
    +關(guān)注

    關(guān)注

    14

    文章

    1018

    瀏覽量

    83746
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2967

    瀏覽量

    104758
  • 蟻群算法
    +關(guān)注

    關(guān)注

    3

    文章

    55

    瀏覽量

    13207

原文標(biāo)題:蟻群算法在驗(yàn)證用例自動(dòng)化回歸中的應(yīng)用

文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    算法基本原理及其應(yīng)用實(shí)例

    算法是一種仿生學(xué)算法,其靈感來(lái)源于螞蟻尋找食物過(guò)程中發(fā)現(xiàn)路徑的行為。
    發(fā)表于 02-02 09:44 ?9.3w次閱讀
    <b class='flag-5'>蟻</b><b class='flag-5'>群</b><b class='flag-5'>算法</b>基本原理及其應(yīng)用實(shí)例

    NHLERE:應(yīng)用算法的WSN路由算法

    【摘要】:針對(duì)WSN中節(jié)點(diǎn)能量有限及節(jié)點(diǎn)間鏈路隨機(jī)損耗特點(diǎn),提出一種基于算法的用于無(wú)限傳感器網(wǎng)絡(luò)的路由算法-NHLERE,利用
    發(fā)表于 04-24 10:05

    MATLAB算法程序匯集篇

    MATLAB算法程序匯集篇
    發(fā)表于 03-30 18:02

    有沒(méi)有算法的matlab編程代碼

    圖像處理的是算法或者是基于對(duì)數(shù)圖像處理理論。。木有這兩種算法的實(shí)現(xiàn)代碼。。有的話發(fā)到我郵
    發(fā)表于 04-03 09:45

    大家來(lái)討論一下算法實(shí)現(xiàn)路徑規(guī)劃的硬件實(shí)現(xiàn)問(wèn)題

    本帖最后由 gk320830 于 2015-3-8 06:44 編輯 大家來(lái)討論一下算法實(shí)現(xiàn)路徑規(guī)劃的硬件實(shí)現(xiàn)問(wèn)題,不僅僅是m
    發(fā)表于 04-26 17:19

    回歸算法哪些,常用回歸算法(3種)詳解

    。通常來(lái)說(shuō),事件可被表示為類別因變量。事件的概率 logit 函數(shù)(Sigmoid 函數(shù))表示: 現(xiàn)在的目標(biāo)是估計(jì)權(quán)重 W=(w1,w2,...,wn) 和偏置項(xiàng) b。邏輯回歸中,使用最大似然估計(jì)量或
    發(fā)表于 07-28 14:36

    算法參數(shù)優(yōu)化

    針對(duì)算法運(yùn)行參數(shù)選取問(wèn)題,提出一種利用粒子群優(yōu)化算法對(duì)
    發(fā)表于 04-22 08:42 ?28次下載

    算法及其應(yīng)用

    該論文講解介紹了算法的定義及其應(yīng)用。
    發(fā)表于 12-25 15:03 ?11次下載

    算法文本聚類中的應(yīng)用研究

    算法文本聚類中的應(yīng)用研究_張海濤
    發(fā)表于 01-03 17:41 ?0次下載

    雜草_算法應(yīng)急管理中的應(yīng)用

    雜草_算法應(yīng)急管理中的應(yīng)用_曹磊
    發(fā)表于 01-07 20:49 ?0次下載

    基于算法的迭代思想的信息素更新規(guī)則

    問(wèn)題和dantzig42問(wèn)題兩個(gè)例子的仿真實(shí)驗(yàn)對(duì)比基本算法。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的算法
    發(fā)表于 11-17 17:30 ?13次下載
    基于<b class='flag-5'>蟻</b><b class='flag-5'>群</b><b class='flag-5'>算法</b>的迭代思想的信息素更新規(guī)則

    算法是什么能做什么_算法的優(yōu)勢(shì)在哪里?

    算法是一種智能算法,也是啟發(fā)式算法?;驹韥?lái)源于自然界螞蟻覓食的最短路徑原理。
    發(fā)表于 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>的優(yōu)勢(shì)在哪里?

    算法解決tsp問(wèn)題

    控制算法走向的關(guān)鍵是信息素,信息素類似遺傳算法的適應(yīng)性函數(shù),類似退火算法的評(píng)價(jià)函數(shù),影響著其中一只螞蟻的下一步的選擇。
    發(fā)表于 02-02 12:47 ?7523次閱讀

    算法的基本原理及其改進(jìn)算法.ppt

    算法的基本原理及其改進(jìn)算法.ppt
    發(fā)表于 04-23 14:28 ?6次下載
    <b class='flag-5'>蟻</b><b class='flag-5'>群</b><b class='flag-5'>算法</b>的基本原理及其改進(jìn)<b class='flag-5'>算法</b>.ppt

    算法LEACH路由協(xié)議中的應(yīng)用_段軍

    算法LEACH路由協(xié)議中的應(yīng)用_段軍(不進(jìn)系統(tǒng)沒(méi)事進(jìn)入系統(tǒng)電源自動(dòng)斷)-
    發(fā)表于 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路由協(xié)議中的應(yīng)用_段軍