本發(fā)明涉及流程規(guī)劃的,尤其是涉及一種測試任務(wù)智能規(guī)劃方法。
背景技術(shù):
1、隨著電子信息技術(shù)在武器裝備領(lǐng)域的飛躍式發(fā)展,武器裝備的測試規(guī)模越來越龐大,測試任務(wù)也越來越繁重。但是傳統(tǒng)的串行測試方法,單系統(tǒng)的測試周期長,其中系統(tǒng)間測試工位占用順序,測試項資源沖突(占用或閑置)與測試項間的時序約束處理都成為了制約測試效率的瓶頸問題。尤其是當(dāng)涉及需要分層的調(diào)度活動,以及需要多個測試項之間的數(shù)據(jù)交互時,傳統(tǒng)的測試任務(wù)規(guī)劃方法往往不能實現(xiàn)對測試過程的動態(tài)重構(gòu),在測試過程中,若測試需求改變,往往需要重頭進(jìn)行規(guī)劃或者重調(diào)度時間過長無法滿足使用要求,嚴(yán)重影響測試效率。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的是提供一種測試任務(wù)智能規(guī)劃方法,面向測試任務(wù)高效執(zhí)行與動態(tài)調(diào)度的實際工程需求,對工件及內(nèi)部測試項進(jìn)行分層協(xié)同調(diào)度,針對測試過程中可能出現(xiàn)的動態(tài)擾動和故障情況,構(gòu)建具備高魯棒性的實時動態(tài)規(guī)劃測試技術(shù)。支持測試序列執(zhí)行中的測試資源中斷、測試項增加和減少,并根據(jù)實際情況自動優(yōu)化執(zhí)行序列,最終實現(xiàn)測試流程完全重調(diào)度。能夠適應(yīng)各種模式下的智能測試任務(wù)規(guī)劃,生成和編輯任務(wù)序列,使測試任務(wù)能夠在復(fù)雜環(huán)境下智能生成、高效執(zhí)行和動態(tài)重構(gòu)。
2、為實現(xiàn)上述目的,本發(fā)明提供了一種測試任務(wù)智能規(guī)劃方法,包括以下步驟:
3、s1:獲取測試文件,測試文件包括若干個測試項列表和測試資源列表;
4、測試項列表包括測試項名稱、標(biāo)識碼、測試耗時、測試項資源占用列表、測試項間時序約束和所屬工件;
5、測試資源列表包括資源名稱、資源類型、標(biāo)識碼和資源上限;
6、其中的資源類型對應(yīng)包括測試工位和測試設(shè)備;
7、s2:針對測試文件,劃分為工件層和測試項層,分別創(chuàng)建測試項調(diào)度仿真環(huán)境和工件調(diào)度仿真環(huán)境;
8、采用析取圖的方式對兩個調(diào)度仿真環(huán)境進(jìn)行表達(dá),每個工件作為一個子圖,子圖中測試項作為圖的節(jié)點,測試信息作為節(jié)點屬性,測試項間時序約束和資源占用約束作為兩類有向邊,得到初始調(diào)度時刻的測試項關(guān)系矩陣、測試項狀態(tài)矩陣、工件關(guān)系矩陣和初始調(diào)度時刻的工件狀態(tài)矩陣;
9、其中,初始調(diào)度時刻的測試項狀態(tài)矩陣和測試項關(guān)系矩陣從測試項調(diào)度仿真環(huán)境中獲得,初始調(diào)度時刻的工件狀態(tài)矩陣和工件關(guān)系矩陣從工件調(diào)度仿真環(huán)境獲得,測試項狀態(tài)矩陣和工件狀態(tài)矩陣隨調(diào)度時刻進(jìn)行更新;
10、s3:基于圖神經(jīng)網(wǎng)絡(luò)和強(qiáng)化學(xué)習(xí)算法的測試流程規(guī)劃,使用圖神經(jīng)網(wǎng)絡(luò)和強(qiáng)化學(xué)習(xí)算法結(jié)合創(chuàng)建兩個調(diào)度智能體,包括ppo1智能體和ppo2智能體;
11、ppo1智能體與當(dāng)前測試項調(diào)度環(huán)境進(jìn)行交互,ppo1智能體的輸出為所有測試項的選擇概率;ppo2智能體與當(dāng)前工件調(diào)度環(huán)境交互,ppo2智能體的輸出為所有工件的選擇概率;在交互過程中,當(dāng)交互次數(shù)達(dá)到預(yù)設(shè)條件,則對ppo1智能體和ppo2智能體的網(wǎng)絡(luò)參數(shù)進(jìn)行更新;
12、s4:步驟s3中的交互過程具體如下:依據(jù)離散時間進(jìn)行規(guī)劃,當(dāng)出現(xiàn)閑置測試工位時,ppo2智能體進(jìn)行工位調(diào)度,直到?jīng)]有閑置測試工位;
13、s5:當(dāng)測試工位均占滿后,ppo1智能體依次對測試項目進(jìn)行調(diào)度,直到出現(xiàn)閑置測試工位,則進(jìn)行工位調(diào)度;
14、s6:循環(huán)重復(fù)上述步驟s4-s5,直到完成所有工件的全部測試項,記錄并保存測試方案;
15、s7:依據(jù)多線程編程技術(shù)設(shè)計實現(xiàn)測試方案的測試仿真,加載得到的測試方案進(jìn)行測試流程仿真,利用非公平鎖技術(shù)提高測試仿真的實時性,利用實時模擬激勵方式進(jìn)行測試需求變更和觸發(fā)重調(diào)度。
16、優(yōu)選的,所述步驟s2中的具體過程如下:
17、測試項調(diào)度仿真環(huán)境創(chuàng)建過程如下:根據(jù)測試文件中的測試項列表及測試資源信息對仿真環(huán)境實現(xiàn)初始化操作,包括創(chuàng)建測試項表,創(chuàng)建資源余量列表,創(chuàng)建測試項調(diào)度完成列表和剩余測試項列表,以測試項狀態(tài)矩陣作為測試項調(diào)度仿真環(huán)境的狀態(tài)空間,當(dāng)前調(diào)度時刻剩余測試項列表中所有滿足時序約束和資源占用約束的測試項作為測試項調(diào)度過程的動作空間;
18、工件調(diào)度仿真環(huán)境創(chuàng)建過程如下:獲取測試文件中工件數(shù)量和工位數(shù)量,創(chuàng)建工位列表、工件調(diào)度完成列表和剩余工件列表,以工件狀態(tài)矩陣作為工件調(diào)度仿真環(huán)境的狀態(tài)空間,當(dāng)前調(diào)度時刻剩余工件列表作為工件調(diào)度過程的動作空間;
19、測試項關(guān)系矩陣、工件關(guān)系矩陣、測試狀態(tài)矩陣和工件狀態(tài)矩陣的獲取過程如下:
20、測試項關(guān)系矩陣的公式如下:
21、t=tr+re
22、其中,建立用于表示測試項之間時序約束關(guān)系的模型tr,以及描述測試資源占用相關(guān)的資源占用關(guān)系模型re,公式如下:
23、
24、上式中,trij為1表示測試項i以測試項j為前置項,否則不存在時序約束關(guān)系,測試項自身存在自連接,對角線元素均為1;reij為0表示測試項i與測試項j沒有資源占用沖突,reij為1表示二者占用了同一資源,其中reij的值表示測試項j對該資源的占用率;
25、工件關(guān)系矩陣用單位陣表示;
26、測試項狀態(tài)矩陣的建立過程如下:測試項狀態(tài)矩陣每一行表示一個測試項節(jié)點的屬性,包括測試耗時、測試資源占用、所屬工件、開始測試時間、結(jié)束測試時間、當(dāng)前測試狀態(tài)、剩余測試時間;
27、工件狀態(tài)矩陣每一行表示一個工件節(jié)點的屬性,用該工件包含的所有測試項的屬性相加求平均表示。
28、優(yōu)選的,所述步驟s3的具體過程如下:
29、構(gòu)建ppo1智能體和ppo2智能體的過程如下:
30、ppo1智能體和ppo2智能體均由圖神經(jīng)網(wǎng)絡(luò)和強(qiáng)化學(xué)習(xí)算法兩部分組成,圖神經(jīng)網(wǎng)絡(luò)的輸入節(jié)點數(shù)量、測試項的數(shù)量和輸出節(jié)點的數(shù)量保持一致,圖神經(jīng)網(wǎng)絡(luò)采用圖同構(gòu)網(wǎng)絡(luò),強(qiáng)化學(xué)習(xí)算法使用近端策略優(yōu)化算法,表示為ppo算法,圖神經(jīng)網(wǎng)絡(luò)將測試項狀態(tài)矩陣和工件狀態(tài)矩陣轉(zhuǎn)化為對應(yīng)的嵌入向量表示,對應(yīng)的嵌入向量作為近端策略優(yōu)化算法的輸入,根據(jù)節(jié)點信息輸出節(jié)點選擇概率;
31、近端策略優(yōu)化算法具體為actor網(wǎng)絡(luò)和critic網(wǎng)絡(luò),actor網(wǎng)絡(luò)用于擬合調(diào)度策略,critic網(wǎng)絡(luò)用于策略評價;
32、ppo1智能體和ppo2智能體的參數(shù)更新過程如下:
33、設(shè)置更新閾值,兩個智能體分別與各自環(huán)境進(jìn)行交互并積累經(jīng)驗,經(jīng)驗保存在經(jīng)驗池中,經(jīng)驗池為保存交互信息的結(jié)構(gòu)體,兩個智能體利用各自經(jīng)驗池中的數(shù)據(jù),分別計算損失函數(shù)和梯度,實現(xiàn)智能體的參數(shù)更新。
34、優(yōu)選的,所述步驟s4中工件調(diào)度的過程具體如下:
35、對于智能體ppo2,創(chuàng)建工件掩碼,工件掩碼中記錄當(dāng)前時刻下工件能否被調(diào)度,工件狀態(tài)矩陣轉(zhuǎn)化為工件的嵌入向量,轉(zhuǎn)化過程如下:
36、工件的嵌入向量根據(jù)以下步驟得到:
37、s41:對所有測試項組成的析取圖按照所屬工件劃分為若干子圖,每個子圖代表一個屬于該工件的測試項集,對劃分后的測試項集依次進(jìn)行平均池化,平均池化公式如下:
38、其中,hgi表示工件i內(nèi)部所有測試項信息池化后的結(jié)果,表示測試項j經(jīng)過圖神經(jīng)網(wǎng)絡(luò)第k次更新后得到的嵌入向量,p表示池化函數(shù),vi表示工件i所包含的測試項集;
39、s42:對工件池化后的信息利用全連接網(wǎng)絡(luò)計算得到工件的嵌入向量,公式如下:
40、
41、si表示工件i最終的嵌入向量表示,為由全連接網(wǎng)絡(luò)實現(xiàn)的非線性函數(shù);
42、將所有工件的嵌入向量和對應(yīng)的工件掩碼作為ppo算法的輸入,智能體ppo2輸出所有工件的選擇概率;從所有工件中選擇概率值最大的工件進(jìn)行排程,將該工件置入當(dāng)前閑置工位,隨后將該工件從剩余工件列表中移除,添加至工件調(diào)度完成列表并更新調(diào)度工件仿真調(diào)度環(huán)境信息,得到下一時刻的工件狀態(tài)矩陣、工件關(guān)系矩陣和工件掩碼,然后使用整體測試耗時作為獎勵函數(shù)計算獎勵值。
43、優(yōu)選的,所述步驟s5中,ppo1進(jìn)行測試項調(diào)度的過程如下:
44、創(chuàng)建測試項掩碼,測試項掩碼中記錄當(dāng)前時刻下的測試項能否被調(diào)度,使用圖神經(jīng)網(wǎng)絡(luò)將測試項關(guān)系矩陣轉(zhuǎn)化為測試項的嵌入向量,公式如下:
45、
46、表示測試項j的第k次更新后得到的測試項嵌入向量,更新過程使用到的信息包括測試項j第k-1次屬性及所有相關(guān)測試項第k次屬性的累加和,ε(k)是一個可以由網(wǎng)絡(luò)更新的參數(shù),ξj(j)表示與測試項j相關(guān)的所有其他測試項,為當(dāng)前調(diào)度時刻輸入至圖神經(jīng)網(wǎng)絡(luò)的測試項j的原始屬性,表示輸入向量的非線性變換,由全連接神經(jīng)網(wǎng)絡(luò)實現(xiàn);
47、然后計算所有測試項節(jié)點的整體信息,利用平均池化的方式得到
48、
49、其中,v表示所有測試項節(jié)點集合,p表示池化函數(shù),表示將所有測試項第k次更新后得到的屬性相加,乘以1/|v|計算其平均值;
50、最后將每個節(jié)點的屬性信息、整體信息及資源余量信息進(jìn)行信息拼接得到每個測試項的嵌入向量表示:
51、
52、sj表示測試項j的嵌入向量表示,是一個由神經(jīng)網(wǎng)絡(luò)實現(xiàn)的非線性函數(shù),rfree表示當(dāng)前調(diào)度時刻所有資源余量信息的集合,hg為上一步得到的所有測試項節(jié)點的整體信息,||表示將向量拼接組成新的向量;
53、測試項關(guān)系矩陣、測試項節(jié)點的嵌入向量和對應(yīng)的測試項掩碼作為強(qiáng)化學(xué)習(xí)算法的輸入,輸出所有測試項的選擇概率,從所有測試項中選擇概率值最大的測試項進(jìn)行排程,更新調(diào)度環(huán)境信息并得到下一時刻的測試項狀態(tài)矩陣,然后利用整體測試耗時作為獎勵函數(shù)計算獎勵值。
54、優(yōu)選的,所述步驟s7中,測試過程中重調(diào)度觸發(fā)條件包括測試設(shè)備減少、新增或刪除測試項、新增或刪除工件,具體重調(diào)度過程如下:
55、步驟71:記錄當(dāng)前調(diào)度時刻及測試進(jìn)度信息;
56、步驟72:依據(jù)最新的測試流程文件重置工件調(diào)度環(huán)境和測試項調(diào)度環(huán)境;
57、步驟73:根據(jù)71記錄的測試進(jìn)度信息加載已調(diào)度信息,得到重調(diào)度狀態(tài);
58、步驟74:根據(jù)73得到的重調(diào)度狀態(tài)及71記錄的重調(diào)度時刻,使用ppo1及ppo2智能體對未調(diào)度節(jié)點進(jìn)行完全重調(diào)度,除了起始條件不同,完全重調(diào)度過程與一般調(diào)度過程一致。
59、優(yōu)選的,所述步驟s7中采用多線程編程技術(shù),為每個工位創(chuàng)建一個線程進(jìn)行仿真測試,使用非公平鎖技術(shù),基于實時模擬激勵技術(shù),通過用戶界面操作實現(xiàn)測試需求變更,包括模擬測試資源減少,測試項及工件增減,作為重調(diào)度觸發(fā)條件。
60、因此,本發(fā)明采用上述的一種測試任務(wù)智能規(guī)劃方法,具有以下好處:
61、(1)在本發(fā)明中,使用強(qiáng)化學(xué)習(xí)和圖神經(jīng)網(wǎng)絡(luò)結(jié)合的方式,可以發(fā)揮圖神經(jīng)網(wǎng)絡(luò)信息提取能力強(qiáng)和強(qiáng)化學(xué)習(xí)的在線決策的優(yōu)勢,具有較強(qiáng)的泛化能力;利用兩個ppo模型進(jìn)行分層協(xié)同調(diào)度和重調(diào)度,解決了單一模型輸出維度無法滿足高維調(diào)度要求的問題;使用非公平鎖和實時模擬激勵技術(shù)進(jìn)行多線程并行測試仿真,減少高優(yōu)先級線程等待時間,提高系統(tǒng)反應(yīng)速度和魯棒性;利用本技術(shù)所述方法進(jìn)行測試任務(wù)調(diào)度和并行執(zhí)行,相較傳統(tǒng)串行測試方法可以提高300%-500%的測試效率。
62、下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。