本發(fā)明屬于旅行商問(wèn)題求解領(lǐng)域,尤其是涉及一種基于深度強(qiáng)化學(xué)習(xí)的大規(guī)模旅行商問(wèn)題求解方法。
背景技術(shù):
1、旅行商問(wèn)題是一個(gè)經(jīng)典的組合優(yōu)化問(wèn)題,其定義是在給定一組城市及其兩兩之間的距離或費(fèi)用矩陣的情況下,尋找一個(gè)能使總旅行距離或費(fèi)用最小的回路,該回路必須經(jīng)過(guò)每個(gè)城市且只經(jīng)過(guò)一次。
2、旅行商問(wèn)題在實(shí)際生活中有廣泛的應(yīng)用場(chǎng)景,如配送路徑規(guī)劃、包裹投遞、商店補(bǔ)貨等。盡管旅行商問(wèn)題本身簡(jiǎn)單明了,但已被證明是一個(gè)np難問(wèn)題,即在多項(xiàng)式時(shí)間內(nèi)很難找到最優(yōu)解。隨著社會(huì)經(jīng)濟(jì)的快速發(fā)展,人們對(duì)各種物流配送效率和成本的要求越來(lái)越高,旅行商問(wèn)題的求解也受到了日益廣泛的關(guān)注。針對(duì)旅行商問(wèn)題,研究人員提出了多種求解算法,主要包括精確算法、啟發(fā)式算法和元啟發(fā)式算法三大類。
3、精確算法能在解決質(zhì)量方面取得優(yōu)勢(shì),目前比較著名的是applegate等人于2006年發(fā)表的工作《the?traveling?salesman?problem:a?computational?study.princetonuniversity?press》。該工作提出concorde求解器,將切割平面算法與分支定界方法相結(jié)合。但隨著問(wèn)題規(guī)模的增大,其效率顯著下降,無(wú)法在合理時(shí)間內(nèi)得到最優(yōu)解或近似解。
4、小規(guī)模問(wèn)題中,啟發(fā)式算法能在短時(shí)間內(nèi)給出滿意解,目前比較著名的是helsgaun于2017年發(fā)表的工作《an?extension?of?the?lin-kernighan-helsgaun?tspsolver?for?constrained?traveling?salesman?and?vehicle?routingproblems.technical?report》。該工作通過(guò)迭代決定重新連接哪些邊以減少路徑長(zhǎng)度的改進(jìn)方法。但隨著車輛路徑問(wèn)題規(guī)模增大和復(fù)雜約束的加入,往往難以給出滿意結(jié)果。
5、近年來(lái),一些開創(chuàng)性的工作將深度學(xué)習(xí)與強(qiáng)化學(xué)習(xí)相結(jié)合,在旅行商問(wèn)題上取得了不錯(cuò)的成果。這些工作利用深度神經(jīng)網(wǎng)絡(luò)的特征提取能力,設(shè)計(jì)出了基于深度強(qiáng)化學(xué)習(xí)的算法,這些算法能夠從大規(guī)模數(shù)據(jù)中提取人工很難總結(jié)的潛在關(guān)系。但是當(dāng)這些工作應(yīng)用到大規(guī)模旅行商任務(wù)中時(shí),會(huì)面臨推理時(shí)間過(guò)長(zhǎng),內(nèi)存溢出等問(wèn)題,因此需要設(shè)計(jì)效率更高的模型來(lái)解決上述問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供了一種基于深度強(qiáng)化學(xué)習(xí)的大規(guī)模旅行商問(wèn)題求解方法,通過(guò)針對(duì)性優(yōu)化算法的內(nèi)存使用,提高內(nèi)存利用效率,以支持更大規(guī)模問(wèn)題的求解;通過(guò)優(yōu)化算法的計(jì)算效率,大幅降低計(jì)算時(shí)間,滿足實(shí)際應(yīng)用中對(duì)求解速度的需求。
2、一種基于深度強(qiáng)化學(xué)習(xí)的大規(guī)模旅行商問(wèn)題求解方法,包括以下步驟:
3、(1)將大規(guī)模旅行商問(wèn)題建模為馬爾科夫決策過(guò)程,包括狀態(tài)、動(dòng)作、策略和獎(jiǎng)勵(lì);
4、(2)隨機(jī)生成一系列大規(guī)模旅行商問(wèn)題實(shí)例并進(jìn)行數(shù)據(jù)增強(qiáng),得到訓(xùn)練數(shù)據(jù);
5、(3)構(gòu)建基于端到端深度強(qiáng)化學(xué)習(xí)的大規(guī)模旅行商問(wèn)題求解模型架構(gòu),該模型包括編碼器和解碼器,編碼器采用快速注意力機(jī)制作為注意力層,解碼器使用一個(gè)特殊的上下文節(jié)點(diǎn)來(lái)表示當(dāng)前的解碼狀態(tài),這個(gè)上下文節(jié)點(diǎn)會(huì)隨著解碼步驟的推進(jìn)而動(dòng)態(tài)更新,指向下一個(gè)等待訪問(wèn)的城市節(jié)點(diǎn);
6、(4)設(shè)計(jì)決策網(wǎng)絡(luò),利用訓(xùn)練數(shù)據(jù)對(duì)構(gòu)建的求解模型進(jìn)行訓(xùn)練;其中,決策網(wǎng)絡(luò)選擇reinforce,利用深度強(qiáng)化學(xué)習(xí)方法中的對(duì)稱性對(duì)reinforce算法進(jìn)行改進(jìn);
7、(5)利用訓(xùn)練好的模型進(jìn)行旅行商問(wèn)題求解,并對(duì)得到的求解結(jié)果進(jìn)行優(yōu)化,提高解的質(zhì)量。
8、在使用強(qiáng)化學(xué)習(xí)解決大旅行商問(wèn)題的過(guò)程中,首先需要將大旅行商問(wèn)題建模為馬爾科夫決策過(guò)程。步驟(1)中,所述的狀態(tài)為已訪問(wèn)的城市集合,動(dòng)作為下一個(gè)要訪問(wèn)的城市,策略為下一步選擇每個(gè)城市的概率,獎(jiǎng)勵(lì)為路徑長(zhǎng)度。
9、步驟(2)中,隨機(jī)生成500-2000個(gè)城市,這些城市的坐標(biāo)位置均勻分布在一個(gè)二維平面上。
10、步驟(2)中通過(guò)旋轉(zhuǎn),平移,翻轉(zhuǎn),縮放等操作進(jìn)行數(shù)據(jù)增強(qiáng)。
11、步驟(3)中,編碼器包括輸入層、注意力層和前饋網(wǎng)絡(luò)層,其中,注意力層采用快速注意力機(jī)制,快速注意力機(jī)制在向前和向后傳遞時(shí)將n2大小的矩陣分塊成塊。
12、編碼器采用基于注意力的神經(jīng)網(wǎng)絡(luò)架構(gòu),能夠自適應(yīng)地從問(wèn)題實(shí)例中提取重要特征。注意力機(jī)制能夠動(dòng)態(tài)地為不同節(jié)點(diǎn)分配不同的權(quán)重,捕捉節(jié)點(diǎn)之間的關(guān)聯(lián)性,從而更好地編碼問(wèn)題實(shí)例。使用由多頭自注意層和前饋層組成的多個(gè)注意層對(duì)輸入節(jié)點(diǎn)進(jìn)行編碼,可以學(xué)習(xí)到問(wèn)題實(shí)例中重要節(jié)點(diǎn)的表征,為后續(xù)的決策過(guò)程提供有效的信息。
13、但是普通的自注意力機(jī)制需要o(n2)的內(nèi)存消耗,不能解決大旅行商問(wèn)題,為了節(jié)省內(nèi)存消耗,采用了快速注意力機(jī)制作為自注意層??焖僮⒁饬C(jī)制內(nèi)存的效率與普通注意力相比是線性的o(n)。并且不同于稀疏或低秩矩陣近似值的方法,它的輸出與普通注意力機(jī)制相同。
14、步驟(3)中,解碼器采用多指針網(wǎng)絡(luò),在解碼過(guò)程中使用一個(gè)特殊的上下文節(jié)點(diǎn)來(lái)表示當(dāng)前的解碼上下文,這個(gè)上下文節(jié)點(diǎn)會(huì)隨著解碼步驟的進(jìn)行而動(dòng)態(tài)更新,指向下一個(gè)待訪問(wèn)的節(jié)點(diǎn)。
15、解碼器采用類似于指針網(wǎng)絡(luò)的架構(gòu),在解碼過(guò)程中使用一個(gè)特殊的上下文節(jié)點(diǎn)來(lái)表示當(dāng)前的解碼上下文。這個(gè)上下文節(jié)點(diǎn)會(huì)隨著解碼步驟的進(jìn)行而動(dòng)態(tài)更新,指向下一個(gè)待訪問(wèn)的節(jié)點(diǎn)。通過(guò)這種類指針的解碼方式,解碼器可以直接生成最終的訪問(wèn)節(jié)點(diǎn)序列,而不需要經(jīng)過(guò)復(fù)雜的搜索過(guò)程。
16、自回歸解碼器通常非???,但內(nèi)存消耗很大,主要是由于在查詢中使用的注意模塊。為了減輕這種情況,本發(fā)明選擇在查詢中移除注意力模塊。同時(shí)為了減少該模塊的移除產(chǎn)生的影響,通過(guò)集成特征來(lái)改進(jìn)解碼器,采用增強(qiáng)的上下文嵌入方法在查詢中包含更全面的上下文信息。
17、步驟(4)中,決策網(wǎng)絡(luò)選擇reinforce,利用深度強(qiáng)化學(xué)習(xí)方法中的對(duì)稱性對(duì)reinforce算法進(jìn)行改進(jìn),使用共享基線:
18、
19、式中,π~pθ(·|s)指的是給定參數(shù)θ和當(dāng)前狀態(tài)s下的策略,即生成的路徑;l(π|s)表示生成的路徑的長(zhǎng)度;b(s)表示共享基線,即部分策略的平均長(zhǎng)度;pθ(π|s)表示給定參數(shù)θ和當(dāng)前狀態(tài)s生成路徑π的概率。
20、reinforce的核心思想是通過(guò)調(diào)整策略網(wǎng)絡(luò)的參數(shù),使得智能體在與環(huán)境交互時(shí),能夠獲得更高的累積獎(jiǎng)勵(lì)。本發(fā)明利用了rl方法中的對(duì)稱性,用于解決大旅行商問(wèn)題。這種對(duì)稱性可以在神經(jīng)網(wǎng)絡(luò)訓(xùn)練期間通過(guò)并行的多個(gè)rollouts來(lái)利用,每個(gè)軌跡都有一個(gè)不同的最優(yōu)解作為探索的目標(biāo)。
21、步驟(5)中,將原問(wèn)題拆分為多個(gè)規(guī)模較小的最短哈密頓路徑子問(wèn)題,采用多核cpu或gpu等并行計(jì)算的方式進(jìn)行優(yōu)化,同時(shí)優(yōu)化多個(gè)子問(wèn)題。
22、考慮到大旅行商問(wèn)題的復(fù)雜性,直接對(duì)整個(gè)問(wèn)題進(jìn)行優(yōu)化可能效率較低。因此,將原問(wèn)題劃分為多個(gè)較小規(guī)模的最短哈密頓路徑子問(wèn)題,每個(gè)子問(wèn)題涉及的節(jié)點(diǎn)較少。對(duì)于劃分得到的多個(gè)最短哈密頓路徑子問(wèn)題,可以采用并行計(jì)算的方式進(jìn)行優(yōu)化。利用多核cpu或gpu等并行計(jì)算資源,同時(shí)優(yōu)化多個(gè)子問(wèn)題,大幅提高了優(yōu)化效率。通過(guò)這種分而治之的策略,可以充分利用初始解決方案的優(yōu)勢(shì),同時(shí)降低了大規(guī)模旅行商問(wèn)題的復(fù)雜度,并通過(guò)并行計(jì)算進(jìn)一步提高了優(yōu)化效率。
23、以現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:
24、1、本發(fā)明基于對(duì)大旅行商問(wèn)題的理解,利用了rl方法中的對(duì)稱性進(jìn)行數(shù)據(jù)增強(qiáng),提高了模型的魯棒性。
25、2、本發(fā)明采用了新型快速注意力機(jī)制作為編碼器,在減少模型內(nèi)存占用的同時(shí),提高了模型的訓(xùn)練和推理速度。
26、3、本發(fā)明在解碼器中去除了注意力模塊,提高了模型的訓(xùn)練和推理速度。同時(shí)為了保持模型準(zhǔn)確率,使用了增強(qiáng)上下文嵌入的方法。
27、4、本發(fā)明采用分而治之的方法,利用多核cpu或gpu等并行計(jì)算資源,進(jìn)一步優(yōu)化求解結(jié)果。