周志強(qiáng),崔國民,楊嶺,馬秀寶,肖媛,楊其國
(1 上海理工大學(xué)能源與動(dòng)力工程學(xué)院,上海 200093; 2 上海市動(dòng)力工程多相流動(dòng)與傳熱重點(diǎn)實(shí)驗(yàn)室,上海 200093)
換熱網(wǎng)絡(luò)優(yōu)化問題是過程系統(tǒng)集成的研究熱點(diǎn),被廣泛應(yīng)用于化工生產(chǎn)等相關(guān)的熱量回收領(lǐng)域,其意義在于有效提高工業(yè)生產(chǎn)經(jīng)濟(jì)性的同時(shí)并降低能耗[1]。換熱網(wǎng)絡(luò)綜合方法一般可分為夾點(diǎn)法和數(shù)學(xué)規(guī)劃法。夾點(diǎn)法[2]作為一種基于熱力學(xué)準(zhǔn)則的優(yōu)化方法由于其具有簡單、實(shí)用的特點(diǎn),已經(jīng)被廣泛采用并趨于成熟,但是由于其在設(shè)計(jì)方法特別是最小溫差的選取上受限于人為經(jīng)驗(yàn),很難給出理論上的最優(yōu)解。因此,隨著優(yōu)化算法與計(jì)算技術(shù)的發(fā)展,數(shù)學(xué)規(guī)劃法中的同步綜合法[3]逐步成為了研究的重點(diǎn)[4]。
Grossmann 等[5]首先提出了基于同步綜合法的分級(jí)超結(jié)構(gòu)模型(SWS),之后得到了不斷發(fā)展和改進(jìn)。Huang 等[6]在經(jīng)典的SWS 模型的基礎(chǔ)上考慮了非等溫混合的情況,使得優(yōu)化范圍進(jìn)一步擴(kuò)大。Pav?o 等[7]提出了一種包含子級(jí)、子分流以及繞流的增強(qiáng)SWS 模型,取得了較好的優(yōu)化效果。近年來,一些學(xué)者也提出了新的同步綜合法模型,例如Xu等[8]的有分流節(jié)點(diǎn)非結(jié)構(gòu)模型(NNM-SS),由于其模型取消了SWS 模型中級(jí)數(shù)的限制,因此潛在的換熱網(wǎng)絡(luò)結(jié)構(gòu)得以極大的豐富。然而,基于同步綜合法的換熱網(wǎng)絡(luò)數(shù)學(xué)模型本質(zhì)上仍是一個(gè)混合整數(shù)非線性規(guī)劃問題(MINLP)[9],其具有高度的非凸、非線性,很難獲取相應(yīng)的導(dǎo)數(shù)信息,所以確定式算法往往在小規(guī)模問題上表現(xiàn)良好,但是隨著算例規(guī)模的加大,其求解時(shí)間和質(zhì)量難以令人滿意[10]。啟發(fā)式算法則由于其適用條件比較寬松、全局搜索能力強(qiáng)的特點(diǎn),可被用來解決不同規(guī)模的換熱網(wǎng)絡(luò)優(yōu)化問題。
許多啟發(fā)式算法已經(jīng)被應(yīng)用于換熱網(wǎng)絡(luò)優(yōu)化中,常見的有遺傳算法(GA)[11]、粒子群算法(PSO)[12-13]、蟻群算法(AA)[14]、微分進(jìn)化算法(DE)[15]等。為了更好地求解換熱網(wǎng)絡(luò)優(yōu)化問題,很多學(xué)者結(jié)合不同算法的優(yōu)勢逐步開發(fā)了一些混合啟發(fā)式算法。Yu 等[16]將GA 算法與模擬退火算法(SA)相結(jié)合,有效地避免了GA 算法的早熟問題,提高了優(yōu)化質(zhì)量。Santos 等[17]采用了一種雙層優(yōu)化算法,其中利用SA算法進(jìn)行外層整型變量的優(yōu)化,PSO 算法用于內(nèi)層連續(xù)型變量的優(yōu)化,其算法在減少?zèng)Q策變量的基礎(chǔ)上進(jìn)一步降低了優(yōu)化難度。強(qiáng)制進(jìn)化隨機(jī)游走算法(RWCE)[18]作為一種新型啟發(fā)式算法能夠同步實(shí)現(xiàn)整型變量和連續(xù)型變量的優(yōu)化,并且其種群之間獨(dú)立進(jìn)化,避免了經(jīng)典啟發(fā)式算法由于個(gè)體之間太多聯(lián)系從而導(dǎo)致目標(biāo)函數(shù)過早收斂的問題,在解決換熱網(wǎng)絡(luò)優(yōu)化問題上具有良好的表現(xiàn),但這種機(jī)制也會(huì)導(dǎo)致算法后期處理整型變量優(yōu)化上效率較低以及存在弱勢個(gè)體無法更新的不足。因此,本文提出使用GA 算法與其混合,在保留前一半優(yōu)勢種群的個(gè)體獨(dú)立進(jìn)化的基礎(chǔ)上,使用交叉、變異等操作產(chǎn)生子代來對(duì)弱勢種群進(jìn)行更新從而提升其優(yōu)化性能,并通過合適的編碼方式在NNM-SS 模型上實(shí)現(xiàn)。另外,對(duì)于RWCE 算法和GA 算法這類群智能優(yōu)化算法,種群數(shù)的增加雖然會(huì)提高優(yōu)化的質(zhì)量但是其優(yōu)化時(shí)間會(huì)成倍增加,因而有必要將本文提出的算法進(jìn)行并行化處理。目前,針對(duì)換熱網(wǎng)絡(luò)優(yōu)化的并行啟發(fā)式算法研究仍較少,已知的有康麗霞等[19]通過將GA 算法并行化來求解兩個(gè)較小規(guī)模算例,Pav?o 等[20]則將一種GA-PSO 混合算法進(jìn)行并行化處理來提高優(yōu)化質(zhì)量,不過部分算例求解質(zhì)量不佳。
鑒于此,本文將提出的RWCE-GA 算法通過OpenMP來實(shí)現(xiàn)并行化設(shè)計(jì),并用3個(gè)不同規(guī)模算例驗(yàn)證算法性能。
本文選用有分流節(jié)點(diǎn)非結(jié)構(gòu)模型來優(yōu)化換熱網(wǎng)絡(luò),作為一種新的換熱網(wǎng)絡(luò)結(jié)構(gòu)模型,相比Grossmann 等[5]所提出的分級(jí)超結(jié)構(gòu)模型其考慮了跨級(jí)匹配的可能性,因此潛在的結(jié)構(gòu)可能性更多,流股匹配以及分流的布置也更加靈活。
圖1 為一個(gè)包含2 條熱流股和冷流股的結(jié)構(gòu)模型。其中每一個(gè)黑色節(jié)點(diǎn)代表換熱單元可能生成的位置,通過熱流(H1、H2)和冷流(C1、C2)之間的節(jié)點(diǎn)匹配形成一個(gè)換熱單元,而分流結(jié)構(gòu)的實(shí)現(xiàn),則是在每個(gè)主節(jié)點(diǎn)(上下的一組節(jié)點(diǎn)可視為主節(jié)點(diǎn))中預(yù)先考慮分流可能性,若主節(jié)點(diǎn)中分流數(shù)大于等于2個(gè)則形成分流,反之則視為無分流,分流數(shù)可以按照優(yōu)化對(duì)象的不同事先設(shè)置,且分流中也可設(shè)置多個(gè)節(jié)點(diǎn)。在每條流股的末端布置冷熱公用工程(C、H),以此來滿足出口溫度的約束條件。
圖1 有分流節(jié)點(diǎn)非結(jié)構(gòu)模型示意圖Fig.1 The sketch of node unstructured model with split
換熱網(wǎng)絡(luò)是在已知流股的進(jìn)出口溫度、熱容流率、傳熱系數(shù)的條件下,通過建立合理的流股匹配達(dá)到回收熱量的目的。其目標(biāo)函數(shù)是由換熱器的固定投資費(fèi)用、換熱器面積費(fèi)用和公用工程使用費(fèi)用組成,這三部分組成了年度投資費(fèi)用(total of annual cost,TAC)。
式中,Cfix為換熱器的固定投資費(fèi)用;CA為換熱器面積費(fèi)用系數(shù);Chu、Ccu為熱公用工程和冷公用工程的費(fèi)用系數(shù)(式(1)中所有的費(fèi)用系數(shù)都進(jìn)行了年度化折算);A代表換熱面積;Q代表換熱量;Z代表換熱單元是否存在的0-1 變量;β為面積指數(shù)項(xiàng);Nc,Nh分別為冷、熱流股數(shù);Nhn和Nhf分別為熱流股上的節(jié)點(diǎn)數(shù)以及分流數(shù)。
換熱面積計(jì)算:
為避免無限大換熱面積,ΔTmin在文中設(shè)定為0.01℃,若小于最小值則違反約束。
RWCE 作為一種新的啟發(fā)式算法,具有高度隨機(jī)的特性,能夠同時(shí)處理整型變量和連續(xù)變量的優(yōu)化,且種群之間獨(dú)立進(jìn)化互不干擾。肖媛[21]分別將其與DE 算法和PSO 算法進(jìn)行了比較,證明了其在處理換熱網(wǎng)絡(luò)優(yōu)化問題時(shí),有更強(qiáng)的全局優(yōu)化能力。其主要流程包括初始化、游走進(jìn)化以及接受差解機(jī)制,其具體算法流程如下。
Step1:設(shè)置種群規(guī)模,初始化時(shí),換熱網(wǎng)絡(luò)上的所有節(jié)點(diǎn)不存在換熱單元匹配,即Qn= 0,n為個(gè)體編號(hào)。
Step2:以一定概率φ判斷網(wǎng)絡(luò)上存在的換熱單元是否需要游走進(jìn)化,若被選中其連續(xù)型變量、熱量Q和分流比SPH和SPC按式(14)進(jìn)行游走,這三者任何一個(gè)小于設(shè)定最小值時(shí),此換熱單元將會(huì)被消去。
式中,α1、α2、α3是服從(0,1)分布的隨機(jī)數(shù);Z′是判斷游走的0-1變量;ΔL是游走步長;X和X′分別代表算法游走前后的連續(xù)型變量。
Step3:新生成換熱單元階段,以一定概率隨機(jī)選取冷熱流股上的空節(jié)點(diǎn)形成新的換熱匹配,其換熱量與分流比分別按式(15)、式(16)、式(17)生成。
式中,Qmax為換熱單元熱量生成的最大值;r1,r2,r3為服從(0,1)分布的隨機(jī)數(shù)。
Step4:選擇與接受差解階段,RWCE算法具有接受差解機(jī)制,即小概率在迭代時(shí)接受差解使得算法具有了爬山能力從而能夠?qū)崿F(xiàn)持續(xù)優(yōu)化。其公式如下。
式中,S和S′分別是迭代前和迭代后的解向量;r4是滿足(0,1)分布的隨機(jī)數(shù);δ是接受差解的概率。
當(dāng)在優(yōu)化過程產(chǎn)生違反最小溫差約束的情況時(shí)會(huì)使用罰函數(shù)法來對(duì)目標(biāo)函數(shù)進(jìn)行懲罰,出口目標(biāo)溫度的等式約束則可以用公用工程來調(diào)節(jié),罰函數(shù)的具體公式如式(19)所示:
式中,Pe是罰因子常數(shù);ε是罰因子系數(shù),通常取為0.5;ΔTleft與ΔTright是換熱單元左右兩邊的溫差。
RWCE 算法的種群之間相互獨(dú)立進(jìn)化,互不干擾,能夠增加全局優(yōu)化的能力,然而這種做法也存在不足之處,主要體現(xiàn)在如下兩點(diǎn):(1)由于種群之間的獨(dú)立進(jìn)化,缺乏交流,導(dǎo)致在處理整型變量的優(yōu)化時(shí)效率不足,中后期新的換熱單元匹配除了少部分引起TAC 下降被接受,大多數(shù)匹配只能通過接受差解和新生成單元操作的聯(lián)動(dòng)實(shí)施才能得以挖掘,另外,由于生成單元的位置是隨機(jī)的,很難保證其流股匹配是相對(duì)優(yōu)秀的;(2)基于NNM-SS模型的RWCE 算法在優(yōu)化換熱網(wǎng)絡(luò)時(shí),往往會(huì)存在一些劣勢個(gè)體,因?yàn)槌跏冀Y(jié)構(gòu)在形成時(shí)偏離正確的優(yōu)化路徑,產(chǎn)生長時(shí)間無法繼續(xù)優(yōu)化的現(xiàn)象,然而RWCE算法由于個(gè)體獨(dú)立進(jìn)化無法對(duì)這些個(gè)體進(jìn)行更新,這樣就造成了部分個(gè)體的浪費(fèi)從而無法充分利用種群規(guī)模大的優(yōu)勢。
GA 算法作為一種元啟發(fā)式方法,已經(jīng)被大量運(yùn)用于換熱網(wǎng)絡(luò)這類組合優(yōu)化問題,將GA 算法與RWCE 算法進(jìn)行混合的主要目的是利用其種群之間進(jìn)行交叉繁衍的機(jī)制來分享好的整型變量匹配關(guān)系,減少中后期整型變量在整個(gè)求解域中的搜索范圍,進(jìn)而增強(qiáng)算法搜索效率與性能。同時(shí),由于在GA 算法實(shí)施的過程中會(huì)產(chǎn)生子代來替換掉落后個(gè)體,因此劣勢個(gè)體無法更新的不足也得到了解決。
遺傳算法的構(gòu)成要素包括種群規(guī)模、編碼方式、遺傳算子和選擇策略等,其核心在于編碼方式和遺傳算子的建立,傳統(tǒng)的遺傳交叉算子有單切點(diǎn)和雙切點(diǎn)操作,但均不適用于NNM-SS模型。因此,本文針對(duì)NNM-SS 模型進(jìn)行了編碼,并建立了一種適用的交叉算子來優(yōu)化整型變量,具體方法如圖2所示,其展示的是兩個(gè)包含3 條熱流和2 條冷流的換熱網(wǎng)絡(luò)在NNM-SS模型下進(jìn)行交叉的操作。
在選定父代與母代之后,以熱流股作為交叉對(duì)象。當(dāng)進(jìn)行交叉操作時(shí),通過設(shè)置交叉判定值θ,分別從父代和母代中選取熱流股,并繼承原熱流股中的所有匹配信息(圖2 中子代的H1 和H3 流股來自父代,H2來自母代),節(jié)點(diǎn)匹配的信息記錄方式如式(20)、式(21)所示:
圖2 交叉操作應(yīng)用于NNM-SS模型示意圖Fig.2 Application of crossover operation to NNM-SS model
其中,i0~2、j0~2代表流股上各節(jié)點(diǎn)的編號(hào),當(dāng)k=0 時(shí)代表下角標(biāo)不存在。交叉后的結(jié)構(gòu)由于自身融合了兩個(gè)不同個(gè)體的結(jié)構(gòu)信息,再繼續(xù)用RWCE 算法優(yōu)化時(shí),算法更有可能從中發(fā)現(xiàn)真正優(yōu)勢的匹配,從而發(fā)現(xiàn)潛在的優(yōu)勢換熱網(wǎng)絡(luò)結(jié)構(gòu)。
值得注意的是,在進(jìn)行交叉操作時(shí)可能會(huì)出現(xiàn)冷流股節(jié)點(diǎn)被重復(fù)連接的情況。因此,有必要采取修復(fù)措施,即當(dāng)檢測到出現(xiàn)節(jié)點(diǎn)重疊時(shí),將重疊的節(jié)點(diǎn)隨機(jī)在冷流股選取空節(jié)點(diǎn)形成新的匹配。這樣的修復(fù)措施不僅能解決節(jié)點(diǎn)重疊導(dǎo)致的不可行解問題,而且選擇同一冷流股上的空節(jié)點(diǎn)進(jìn)行匹配,能促進(jìn)父代和母代的匹配關(guān)系進(jìn)行競爭,保留下優(yōu)秀的基因。修復(fù)措施如圖3 所示,圖中虛線代表重新形成的匹配。
圖3 節(jié)點(diǎn)重疊時(shí)的不可行解修復(fù)操作Fig.3 Repair operation of infeasible solution when nodes overlap
在RWCE 算法基礎(chǔ)之上實(shí)施GA 算法的具體算法流程如下。
Step1:當(dāng)RWCE 算法優(yōu)化到一定迭代步數(shù)λ時(shí)進(jìn)入GA算法,將種群按TAC值劃分為兩部分。
Step2:按式(22)計(jì)算每個(gè)個(gè)體的適應(yīng)度值,父代從前一半個(gè)體中根據(jù)適應(yīng)度值使用旋輪法進(jìn)行選取。
式中,ξ是一個(gè)較小的數(shù),確保劣勢的個(gè)體也有繁殖的機(jī)會(huì)。
Step3:交叉操作,按式(23)進(jìn)行交叉,調(diào)取滿足(0,1)分布的隨機(jī)數(shù)α4,如果α4小于判定值θ,則從上一步挑選的父代中選取熱流股,否則仍依旋輪法在所有個(gè)體中選取母代的熱流股,直到所有熱流股都被選取。若在交叉后,子代冷流股上的節(jié)點(diǎn)出現(xiàn)重疊,則按前文所述進(jìn)行修復(fù)。一般θ設(shè)置大于0.5,以確保多數(shù)熱流股能繼承到父代的優(yōu)秀基因。
需要強(qiáng)調(diào)的是,交叉后形成的網(wǎng)絡(luò)結(jié)構(gòu)都將進(jìn)行換熱量的重新分配,增加子代的獨(dú)立進(jìn)化能力。
Step4:變異操作,將交叉子代換熱網(wǎng)絡(luò)結(jié)構(gòu)與父代換熱網(wǎng)絡(luò)進(jìn)行結(jié)構(gòu)對(duì)比。若結(jié)構(gòu)不同則按小概率μ選取冷熱流股上的空節(jié)點(diǎn)形成匹配并按式(24)賦予換熱量;若結(jié)構(gòu)沒有發(fā)生變化則強(qiáng)制變異,按式(24)挑選空節(jié)點(diǎn)生成換熱單元。
Step5:重復(fù)Step2~Step4 直到獲得數(shù)量等同于后半部分種群的子代,并將子代的結(jié)構(gòu)信息傳遞給后一半劣勢種群繼續(xù)使用RWCE算法進(jìn)行優(yōu)化。
RWCE-GA 算法的主要思想是通過GA 算法將RWCE 算法所搜尋到的結(jié)構(gòu)匹配信息進(jìn)行交叉、變異后來循環(huán)往復(fù)地淘汰后一半劣勢個(gè)體,并繼續(xù)使用RWCE 算法進(jìn)行優(yōu)化發(fā)揮其隨機(jī)游走獨(dú)立進(jìn)化的能力。在保留優(yōu)勢個(gè)體的過程中,新產(chǎn)生的較優(yōu)個(gè)體若能在下一輪次的GA 算法執(zhí)行之前進(jìn)入前一半部分的優(yōu)勢種群中,就能得到充分優(yōu)化的機(jī)會(huì),從而不至于遺漏其通過父代和母代繁衍之后產(chǎn)生的優(yōu)良整型變量基因。整個(gè)過程中,優(yōu)勢種群間的個(gè)體和劣勢種群間的個(gè)體是動(dòng)態(tài)變化的,且能實(shí)現(xiàn)整型變量匹配的信息共享,彌補(bǔ)了基礎(chǔ)RWCE 算法種群獨(dú)立進(jìn)化所導(dǎo)致的缺陷,同時(shí)由于前一半優(yōu)良個(gè)體獨(dú)立進(jìn)化仍能保持較強(qiáng)的全局范圍內(nèi)獨(dú)立進(jìn)化能力,避免GA 算法雜交導(dǎo)致的早熟問題。
RWCE 算法和GA 算法都十分依賴于種群個(gè)數(shù),種群規(guī)模越大,RWCE 算法的優(yōu)化路徑就越多,從而優(yōu)化質(zhì)量會(huì)大大提升,而GA 算法就越能通過交叉、變異繁衍出好的后代。不過,隨著種群規(guī)模的增大會(huì)使一般的串行算法效率低下,優(yōu)化時(shí)間急劇上升。從算法的時(shí)間復(fù)雜度來看,有分流的節(jié)點(diǎn)非結(jié)構(gòu)模型相比無分流模型多了分流數(shù)和分流上的節(jié)點(diǎn)數(shù),在遍歷熱流股節(jié)點(diǎn)進(jìn)行計(jì)算時(shí)其時(shí)間復(fù)雜度可以達(dá)到O(N5),并且循環(huán)中還要做多次運(yùn)算,這顯然在大規(guī)模種群優(yōu)化時(shí)是不合理的,因此十分有必要在基礎(chǔ)串行算法之上進(jìn)行并行化。
并行算法使用Fortran+OpenMP 來實(shí)現(xiàn),其中OpenMP 是一種基于共享內(nèi)存進(jìn)行多線程并行設(shè)計(jì)的指導(dǎo)性注釋[22]。共享內(nèi)存模式如圖4 所示,指的是CPU 的每個(gè)核心中的每個(gè)線程都能對(duì)同一內(nèi)存位置的變量值進(jìn)行讀寫,而整個(gè)并行程序由多個(gè)共享內(nèi)存的并行任務(wù)所組成?;诖耍疚耐ㄟ^合理地將算法涉及到的變量劃分為私有變量、線程私有變量和共享變量,并重新設(shè)計(jì)算法來實(shí)現(xiàn)并行化,其流程如圖5所示。
圖4 共享內(nèi)存模式示意圖Fig.4 Schematic diagram of shared memory mode
圖5 并行RWCE-GA算法流程圖Fig.5 Flow chart of parallel RWCE-GS algorithm
算法一開始產(chǎn)生初始種群后將RWCE 算法分配到不同的線程中,而在最優(yōu)結(jié)構(gòu)信息記錄時(shí)則會(huì)讓線程依次串行通過來確保變量記錄的準(zhǔn)確而線程之間不發(fā)生沖突,當(dāng)?shù)綌?shù)達(dá)到設(shè)定閾值時(shí)會(huì)讓主線程執(zhí)行GA 算法,算法會(huì)在進(jìn)行了一系列交叉、變異的繁殖操作之后,將所獲取的結(jié)構(gòu)重新分配給不同線程繼續(xù)優(yōu)化。
本文算法通過Visual Studio 2017 編程,計(jì)算機(jī)的操作系統(tǒng)為Windws10, CPU 為Intel(R) Xeon(R)Gold 6226R@2.90GHZ(2處理器64核128線程)。
并行算法的有效性的核心指標(biāo)是加速比,分別測試了H6C10算例下種群分別在10~60個(gè)體數(shù)時(shí)運(yùn)行100000 步的運(yùn)算執(zhí)行時(shí)間和效率,結(jié)果如圖6 所示。在60 個(gè)個(gè)體時(shí),串行程序的運(yùn)行時(shí)間為408 s,在并行程序60個(gè)線程的加速下(一個(gè)個(gè)體對(duì)應(yīng)一個(gè)線程)僅為17.8 s,而加速比隨著線程數(shù)的增多先增加后減小,其最大加速比在30 個(gè)線程時(shí)可達(dá)38.5。加速比先增大后減小的原因是在線程數(shù)較少時(shí)串行部分較少,算法的并行部分對(duì)比串行部分能起到更大的作用,因而加速比能夠先增大,但隨著線程的增加,通過串行部分的線程數(shù)不斷增加,同時(shí)算法中為了記錄數(shù)值的精確還設(shè)置了線程堵塞從而導(dǎo)致了加速比的不斷減小。另外作為比較,本文還測試了在30 個(gè)線程下H4C5、H13C7 算例的加速比,它們分別為25.2 和46.3,這表明隨著算例規(guī)模的擴(kuò)大,并行算法的加速效果更加顯著,這與文獻(xiàn)[19]得出的結(jié)論一致。由此可見,將RWCE-GA 算法進(jìn)行并行化可大幅度提高求解效率,從而可以實(shí)現(xiàn)算法在大種群規(guī)模數(shù)下的求解,彌補(bǔ)串行算法運(yùn)算速度的不足。
圖6 并行算法和串行算法執(zhí)行時(shí)間對(duì)比及其加速比Fig.6 Comparison of execution time and speedup between parallel algorithm and serial algorithm
算例1 是由Linnhoff 等[23]提出的一個(gè)芳烴廠的案例。它由4 條熱流股和5 條冷流股組成,是一個(gè)被廣泛研究的經(jīng)典算例,算例參數(shù)如表1 所示。本文通過并行RWCE-GA 算法優(yōu)化所得的最后結(jié)果為2891952 USD·a-1,優(yōu)化時(shí)間為3782 s,換熱量游走步長ΔL=150 kW,Qmax=200 kW,λ為3000000 步,交叉概率θ=0.6,變異概率μ=0.1,并行線程數(shù)設(shè)置為64。
表1 H4C5 算例流股參數(shù)Table 1 Parameters of the case involving 9 streams
算例1 規(guī)模不大,對(duì)于優(yōu)化來說,容易發(fā)生早熟,并且2.2 節(jié)已述基礎(chǔ)RWCE 算法由于個(gè)體獨(dú)立進(jìn)化的緣故會(huì)使得弱勢個(gè)體缺乏矯正的機(jī)會(huì)導(dǎo)致優(yōu)化難以進(jìn)行。因此,在此算例下跟蹤了四個(gè)個(gè)體優(yōu)化過程中TAC 的變化,并將它們優(yōu)化到最優(yōu)值時(shí)遺傳代數(shù)為第十代種群TAC 的排序情況和進(jìn)行第一次執(zhí)行GA 算法時(shí)第一代種群TAC 的排序情況進(jìn)行了對(duì)比,如表2所示??梢园l(fā)現(xiàn),原本在第一代中處于最后的26 號(hào)和21 號(hào)個(gè)體經(jīng)過遺傳雜交以后在找到最優(yōu)解時(shí)變?yōu)樽顑?yōu)個(gè)體,而一開始的最優(yōu)個(gè)體59 號(hào)和31 號(hào)個(gè)體在算法找到最優(yōu)解時(shí)進(jìn)入了后一半種群。這就說明遺傳算法彌補(bǔ)了基礎(chǔ)RWCE 算法的不足,通過遺傳算法交叉、變異后的劣勢種群能重新具有活力,許多有更優(yōu)秀結(jié)構(gòu)匹配的個(gè)體能夠涌現(xiàn),充分發(fā)揮多種群的優(yōu)勢并解決了原有算法劣勢個(gè)體無法更新的缺點(diǎn),同時(shí)混合算法由于前一半個(gè)體仍獨(dú)立進(jìn)化,可以使這些個(gè)體能得到充分的優(yōu)化。
表2 四個(gè)跟蹤個(gè)體不同遺傳代數(shù)下的費(fèi)用排序?qū)Ρ萒able 2 Comparison of TAC under different genetic generations of four tracking individuals
算例1 的最優(yōu)結(jié)果如圖7 所示,結(jié)果對(duì)比如表3所示,其中目前的文獻(xiàn)最優(yōu)解是由Zamora 等[28]通過在他人已知的換熱網(wǎng)絡(luò)結(jié)構(gòu)上通過一種公用工程位置重置策略進(jìn)行強(qiáng)化所保持,其結(jié)構(gòu)包含17個(gè)換熱器,TAC 為2892406 USD·a-1,然而其換熱網(wǎng)絡(luò)的結(jié)構(gòu)并非是通過算法尋優(yōu)的結(jié)果,其策略依賴于與一個(gè)好的基礎(chǔ)結(jié)構(gòu)才能實(shí)施其策略進(jìn)行強(qiáng)化,因此其普適性略顯不足。本文最優(yōu)解與其相比,雖然增加了設(shè)備投資費(fèi)用,但是公用工程能耗費(fèi)用下降卻達(dá)40948 USD·a-1,能量回收更多,從而最終TAC 下降了454 USD·a-1。另外,本文1096 s 下算法的優(yōu)化結(jié)果為2894686 USD·a-1,求解質(zhì)量較文獻(xiàn)[26]有很大的提高,這也表明本文的并行混合算法的優(yōu)化效率較好。
圖7 并行RWCE-GA算法優(yōu)化算例1最優(yōu)結(jié)果Fig.7 The optimal result of example 1 under the optimization of parallel RWCE-GA algorithm
表3 算例1文獻(xiàn)結(jié)果對(duì)比Table 3 Comparison of case 1 with literatures
算例2 來自Khorasany 等[29]的研究,這是一個(gè)從實(shí)際香料廠簡化而來的算例,包含6 條熱流股和10條冷流股,并且每條流股的熱負(fù)荷較大,其中熱蒸汽價(jià)格為35 USD·(kW·a)-1,冷卻水價(jià)格為2.1 USD·(kW·a)-1,換熱器計(jì)算價(jià)格公式為(26600+4147.5A0.6)USD·a-1。在此算例情況下,算法的主要參數(shù)設(shè)置為:換熱量游走步長ΔL=150 kW,Qmax=350 kW,λ為5000000 步,交叉概率θ=0.6,變異概率μ=0.1。另外,算例的熱流股較少,而程序中的遍歷節(jié)點(diǎn)以熱流股為基準(zhǔn),因此并行線程數(shù)可設(shè)置為64。
為了進(jìn)一步證實(shí)混合算法有效性,將其TAC 的迭代曲線與基礎(chǔ)RWCE 算法在并行情況下的迭代曲線進(jìn)行對(duì)比,如圖8所示,發(fā)現(xiàn)混合算法收斂性大幅提升,特別在前一億步實(shí)施GA 算法的迭代步數(shù)時(shí)經(jīng)常能產(chǎn)生TAC 的下降,證明了混合算法相比基礎(chǔ)RWCE 算法能有效提升優(yōu)化的效率。相較而言,基礎(chǔ)RWCE 算法由于過于強(qiáng)調(diào)個(gè)體獨(dú)立進(jìn)化,好的結(jié)構(gòu)匹配無法共享,導(dǎo)致整型變量的優(yōu)化過于隨機(jī),而本身換熱網(wǎng)絡(luò)所存在的潛在匹配十分龐大,所以其優(yōu)化效率偏低。
圖8 RWCE算法和RWCE-GA算法在并行情況下的迭代曲線對(duì)比Fig.8 Comparison of iterative curves between RWCE and RWCE-GA in parallel algorithm
從優(yōu)化質(zhì)量來看,混合算法優(yōu)化的最終結(jié)果為6650082 USD·a-1,而基礎(chǔ)RWCE 算法的優(yōu)化結(jié)果為6807138 USD·a-1,優(yōu)化到最優(yōu)解的時(shí)間為35699 s,其算例對(duì)比如表4 所示,最優(yōu)結(jié)果如圖9 所示。雖然優(yōu)化時(shí)間較長,但從突破最優(yōu)解角度來看,這些時(shí)間上的花費(fèi)是可以接受的,并且本文在與文獻(xiàn)[27]相同的計(jì)算時(shí)間下的優(yōu)化結(jié)果為6689341 USD·a-1,也超過了大部分文獻(xiàn)結(jié)果。目前,該算例已知最優(yōu)結(jié)果是由Rathjens 等[27]通過一種有結(jié)構(gòu)辨識(shí)功能的定制遺傳算法優(yōu)化所得,其結(jié)果為6657080 USD·a-1。相比文獻(xiàn)最優(yōu)解,本文結(jié)果不僅設(shè)備投資費(fèi)用下降了2368 USD·a-1,而且能耗費(fèi)用也下降了4630 USD·a-1,TAC 總的下降了6998 USD·a-1。這表明RWCE-GA 算法在后期通過優(yōu)勢結(jié)構(gòu)的雜交、變異能夠增強(qiáng)其全局搜尋能力,改善了基礎(chǔ)RWCE 算法在處理整型變量優(yōu)化時(shí)效率低的缺點(diǎn)。其次,對(duì)比文獻(xiàn)[27]中所得到的換熱網(wǎng)絡(luò)結(jié)構(gòu),其同時(shí)在H1、H2、C8上都產(chǎn)生了分流,而本文結(jié)構(gòu)僅在H2產(chǎn)生了分流,對(duì)于實(shí)際工程而言,分流數(shù)的減少能簡化管網(wǎng)布置以及整套換熱網(wǎng)絡(luò)系統(tǒng)的復(fù)雜性,這是有利的。
圖9 并行RWCE-GA算法優(yōu)化算例2最優(yōu)結(jié)果Fig.9 The optimal result of example 2 under the optimization of parallel RWCE-GA algorithm
表4 算例2文獻(xiàn)結(jié)果對(duì)比Table 4 Comparison of case 2 with literatures
為了進(jìn)一步檢驗(yàn)混合算法的優(yōu)化能力和普適性,選用了H13C7[33]這一大規(guī)模的算例來檢測算法在處理大規(guī)模換熱網(wǎng)絡(luò)優(yōu)化問題上的性能,算例的熱蒸汽價(jià)格為250 USD·(kW·a)-1,冷卻水價(jià)格為25 USD·(kW·a)-1,換熱器計(jì)算價(jià)格公式為(4000+500×A0.83)USD·a-1。算法的主要參數(shù)設(shè)置為:換熱量游走步長ΔL=100 kW,Qmax=100 kW,λ為5000000 步,交叉概率θ=0.7,變異概率μ=0.1,并行線程數(shù)設(shè)置為48。
經(jīng)優(yōu)化,此算例下找到的最優(yōu)換熱網(wǎng)絡(luò)結(jié)構(gòu)TAC 值為1396613 USD·a-1,優(yōu)化時(shí)間為7237 s,算例的結(jié)構(gòu)如圖10 所示,算例對(duì)比如表5 所示。該算例的最優(yōu)TAC 仍是Zamora 等[28]通過公用工程重置所得,其結(jié)果為1388811 USD·a-1。Pav?o等[20]也對(duì)算法進(jìn)行了并行化處理,不過他們在7000 s 的優(yōu)化時(shí)間內(nèi)TAC 結(jié)果為1516582 USD·a-1,優(yōu)化質(zhì)量不高。孫濤等[34]使用了一種改進(jìn)的RWCE 算法,其最優(yōu)結(jié)果TAC 為1431665 USD·a-1,耗時(shí)23206 s。文獻(xiàn)[27]的最優(yōu)結(jié)果則是通過HGA-SIR 算法優(yōu)化所得,TAC 為1407203 USD·a-1,但是耗時(shí)達(dá)50328 s,顯然無論優(yōu)化質(zhì)量還是優(yōu)化效率相比本文提出的并行混合算法都偏低。
圖10 并行RWCE-GA算法優(yōu)化算例3最優(yōu)結(jié)果Fig.10 The optimal result of example 3 under the optimization of parallel RWCE-GA algorithm
表5 算例3文獻(xiàn)結(jié)果對(duì)比Table 5 Comparison of case 3 with literatures
(1)為了提升RWCE 算法在優(yōu)化換熱網(wǎng)絡(luò)時(shí)整型變量的優(yōu)化能力以及彌補(bǔ)弱勢個(gè)體無法更新的問題,提出將RWCE算法與GA算法混合并在NNMSS 模型上實(shí)現(xiàn)。該混合算法在一定迭代周期內(nèi)使用GA 算法進(jìn)行交叉、變異等操作更新后一半的劣勢種群,來提升基礎(chǔ)RWCE 算法的性能,并且由于前一半種群仍能獨(dú)立進(jìn)化,所以混合后的算法在提高搜索效率的同時(shí)兼顧原有算法優(yōu)良的全局獨(dú)立尋優(yōu)能力。
(2)使用OpenMP 系統(tǒng)將本文所提出的混合算法進(jìn)行并行化處理,測試了并行算法在H6C10 算例上的運(yùn)行時(shí)間。結(jié)果表明并行后的混合算法能大幅提高求解效率,最高加速比在30個(gè)線程時(shí)可達(dá)到38.5,且加速比隨著算例規(guī)模的增大而增大,使其能夠在大規(guī)模種群時(shí)進(jìn)行優(yōu)化,克服了串行算法原本優(yōu)化時(shí)間過長的缺點(diǎn)。
(3)三個(gè)規(guī)模不同的算例用于驗(yàn)證本文提出的并行RWCE-GA 算法,其中H4C5 算例和H6C10算例分別較文獻(xiàn)最優(yōu)解下降454 USD·a-1和6998 USD·a-1,H13C7 算例則在較短時(shí)間內(nèi)超過大部分文獻(xiàn)結(jié)果,說明本文的并行混合算法能處理不同規(guī)模下的換熱網(wǎng)絡(luò)優(yōu)化問題,可有效提高優(yōu)化的質(zhì)量。
符 號(hào) 說 明
A——換熱面積,m2
C——費(fèi)用系數(shù),USD·a-1
F——適應(yīng)度函數(shù)值
FCp——熱容流率,kW·℃-1
L——冷熱流股連接情況的匹配信息
LMTD——對(duì)數(shù)平均溫差,℃
ΔL——游走的步長,kW
n——個(gè)體編號(hào)
Pe——罰因子常數(shù)
Q——換熱量,kW
Qmax——算法換熱量最大生成值,kW
r1,r2,r3,r4——服從(0,1)分布的隨機(jī)數(shù)
S,S′——分別為選擇與接受差解階段迭代前后的解向量
SPC,SPH——分別為冷熱流股的分離比
T——溫度,℃
ΔTmin——傳熱溫差最小值,℃
ΔTleft,ΔTright——分別為換熱單元左、右邊的溫差,℃
X,X′——分別為算法游走前后的連續(xù)型變量
Z,Z′——分別為換熱單元是否存在,以及是否游走的整型變量
α1,α2,α3,α4——服從(0,1)分布的隨機(jī)數(shù)
δ——接受差解概率
ε——罰因子系數(shù)
θ——交叉概率判定值
λ——GA算法實(shí)施周期
ξ——適應(yīng)度函數(shù)常數(shù)
φ——判斷是否需要游走的概率值
上角標(biāo)
in——進(jìn)口
out——出口
tg——目標(biāo)溫度
β——面積費(fèi)用指數(shù)
下角標(biāo)
A——換熱面積
F,M,S——分別為父代、母代、子代
fix——固定投資
it——迭代步數(shù)
i,i1,i2——分別為熱流股上流股、節(jié)點(diǎn)以及分流編號(hào)
j,j1,j2——分別為冷流股上流股、節(jié)點(diǎn)以及分流編號(hào)
k——節(jié)點(diǎn)連接匹配序號(hào)
n——個(gè)體號(hào)