華 麗, 包致成, 劉啟源, 曾星杰, 于澤沛, 安云云, 王 冶
1(青島市生態(tài)環(huán)境監(jiān)控中心, 青島 266003)
2(中國石油大學(華東) 計算機科學與技術學院, 青島 266580)
3(國網山東省電力公司青島市黃島區(qū)供電公司, 青島 266580)
4(解放軍91144部隊, 青島 266580)
隨著我國的城市化、工業(yè)化的高速發(fā)展, 我國產生的污水量也隨之增加, 對我國的水環(huán)境治理造成了巨大的壓力, 因此, 在我國水環(huán)境治理的新階段中, 污水處理是保證我國水資源可持續(xù)利用與發(fā)展的重要部分[1]. 至2017年底, 我國共建成5000多座城市污水處理廠[2]. 在污水處理設施覆蓋率不斷增長的背景下, 污水處理后的水質不達標與成本高等等問題日益明顯,高成本導致部分污水處理廠出現(xiàn)了“養(yǎng)不起”的難題[3],因此對污水工藝流程進行優(yōu)化, 降低污水處理成本迫在眉睫.
與此同時, 城市污水處理過程包括多種水質變量和操作變量, 需要同時滿足出水達標排放與高安全性等條件, 因此對污水工藝流程進行優(yōu)化目標是在保證出水水質的前提下, 降低整體污水處理的工藝成本[4],也就是在滿足過程約束、處理指標與設定值的條件下,設計出排放水質符合要求且運行成本最低的解決方案.但污水處理工藝過程具有指標多、污水成分復雜、考慮因素復雜等特點, 如何在水質達標、成本最低的條件下尋找到最優(yōu)的處理過程從而實現(xiàn)提質增效, 是如今亟需解決的問題[5].
為了實現(xiàn)污水處理工藝方案的最優(yōu)化, 很多學者對此進行了廣泛的研究. 劉載文等[6]給出污水處理過程中多變量最優(yōu)控制的數學模型, 采用遺傳算法求解污水處理過程的優(yōu)化控制問題, 解決了采用傳統(tǒng)算法處理的局部最優(yōu)問題; 盧薇等[7]提出一種動態(tài)慣性權重的多目標粒子群優(yōu)化算法, 獲得了最優(yōu)的溶解氧和硝態(tài)氮的優(yōu)化設定值; 趙小強等[8]利用改進多目標布谷鳥算法同時對污水處理的能耗與出水水質模型進行優(yōu)化, 并通過利用PID控制器實現(xiàn)對優(yōu)化設定值的跟蹤控制, 使得能夠在保證水質的前提下降低了能耗; 趙楊等[9]采用多策略融合變異和排序優(yōu)選方法, 將自適應更新交叉率與PID控制器相結合, 實現(xiàn)對溶解氧和硝態(tài)氮濃度設定值的動態(tài)尋優(yōu)和跟蹤控制. 上述的研究工作均取得了不錯的效果.
然而, 以上尋優(yōu)策略均是在污水處理工藝技術流程長度固定的情況下對環(huán)保設備工藝流程進行優(yōu)化排序或具體設定工藝參數值, 并沒有考慮到工藝序列長度可變的性質, 缺少了調度的靈活性, 難以用于全流程優(yōu)化運行.
針對以上問題, 本文首先建立了污水處理工藝知識庫. 其次, 在建立工藝知識庫的基礎上, 采用messy遺傳算法對工藝流程進行尋優(yōu), 并根據污水處理的指標要求對算法的適應度函數以及選擇策略進行了改進,給出了基因長度不定的種群所特有的進化方式, 以實現(xiàn)不定長污水處理工藝流程的優(yōu)化. 最后, 通過實驗驗證, messy遺傳算法能夠在工藝序列長度變化的情況下實現(xiàn)方案的高效準確的推薦.
污水處理工藝知識庫的建立是工藝優(yōu)化系統(tǒng)實現(xiàn)的基礎, 污水處理工藝流程的經濟技術指標一般包含下列內容: 處理單位水量投資、縮減單位污染物投資、處理單位水量電耗和成本、縮減單位污染物電耗和成本、占地面積、運行性能可靠性、管理維護難易程度、總體環(huán)境效益等. 另外, 每一種處理技術都應該提供設計參數、處理成本計算公式以及處理效率或處理量計算公式, 以便進行正向或反向的計算.
單一的處理方式往往無法將含有多種污染物的污水徹底處理到污染物的期望指標以下, 需要根據給定的原污水水質, 水量, 期望處理程度, 成本上限等來將多個處理模塊組裝起來, 以保證通過該組合后的工程處理后的污水在給定的指標范圍之內.
和一般的調度問題不同, 污水處理工程并不要求每一步的污水處理模塊不同, 而工程本身也不限制其長度. 這就意味著遺傳算法必須針對多個基因長度不同的種群進行并行計算, 并且還要將每個種群中最優(yōu)的個體進行匯總比較, 以生成最優(yōu)的工程安排. 但每一步的可重復性使得遺傳算法中基因本身的變化方式變得簡單, 每個種群內部個體的基因中的每一小段均對應多種工藝庫里的模塊以及對應的處理效率, 其中處理效率隨機指定, 或者通過工程師的設計歷史挑選. 本文中提到的污水處理工藝優(yōu)化系統(tǒng)設計了技術的使用記錄, 當工程師用戶通過本系統(tǒng)進行工藝流程安排時,所使用過的模塊以及對應效率會被作為工藝歷史記錄以供參考.
整個知識庫由多個工藝庫和工藝歷史記錄組成,每個工藝庫中包含多個工藝處理模塊. 在本文中, 整個污水處理過程分為3個單元: 預處理單元、生物處理單元、尾處理單元.
其具體含義為:
(1)預處理單元由格柵、沉砂池、沉淀池組成;
(2)生物處理單元包含多個步驟的工藝處理模塊,這些模塊來自于多個工藝庫和工藝歷史. 生物處理單元中還包括深度處理單元, 用來處理經過工藝流程處理后的污水; 與前文一致, 此處的工藝處理效率特指處理后污染物質的占有百分比)
(3)尾處理單元包括沉砂池、沉淀池.
參考城市污水處理工藝的設計[10], 給出概念圖如圖1所示.
圖1 污水處理過程概念圖
該污水處理知識庫的數據主要來源于以下方面:(1)本文中提到的污水處理工藝優(yōu)化系統(tǒng)的技術使用記錄; (2)對各類公開標準及成熟污水方案中的工藝模塊數據的收集. 其所收集的數據主要包含以下指標: 工藝基本信息(包含工藝名稱、工藝內容等), 處理單位水量成本及其計算方式, 縮減單位污染物成本及其計算方式等信息.
如何設定生物處理單元中工藝技術的先后順序和長度, 以及各工藝技術的處理效率, 以最少的成本使污水的各項指標達標, 是本文所要解決的問題.
針對污水處理應用場景下, 工藝技術流程的調度問題以及其長度可變的性質, 本文采用了messy遺傳算法. 本節(jié)對污水處理工藝流程問題進行定義, 并且介紹messy遺傳算法在本場景的設計、改進與應用.
一般來講, 污水中的污染物不僅包含一種, 而本文將討論如何以數學形式對問題進行定位并解決, 分析給定多種污染物的初始量和處理指標的條件下如何使用算法進行處理流程的優(yōu)化.
令生物處理單元中的工藝總體流程為集合 A , 工藝知識庫
其中, Ti為工藝庫, H 為工藝歷史記錄, 每個工藝庫和工藝歷史記錄的元素表示如下:
ti和hi均 表示具體的工藝技術模塊, 而每個ti和hi均 可表示如下:
其中,r為該工藝技術處理污水的效率,ei表示該技術處理污水中某種物質的效率,p(r) 為工藝參數,c(r)為處理成本,p(r) 和c(r)因不同處理工藝而異, 其作用是能夠將指定的處理效率作為輸入, 反推出該工藝技術模塊的設定參數和預計成本.
所以本文主要研究的問題是: 如何根據給定的待處理污染物含量lstart=(l1,l2,···,lv)以及指標要求lrequire=(l1,l2,···,lv), 通過工藝知識庫ε 給定的數據, 計算出低成本高效的處理流程 A, 其中工藝模塊可重復數量(即 A 中元素可重復的個數)為b, 初始工藝長度(即A 中元素的總個數)為ninit:
其中, 處理流程A 滿足:
每一個工藝模塊gi與 每一步的處理效率ri相對應,因此1 -ri表 示經過工藝模塊gi處理后污水內對應污染物的剩余百分比, 如果相乘的結果小于規(guī)定的指標或者剩余百分比則處理流程A 為滿足條件的工藝序列.
另外, 工藝序列的優(yōu)化目標為:
每一個工藝模塊gi與每一步的成本計算公式(或成本值)ci相對應, 每一步的成本總和即處理流程A 的總成本, 對于本文所提出的污水工藝優(yōu)化問題而言, 最主要的優(yōu)化目標是處理流程總成本的最小化.
遺傳算法是一種解決最優(yōu)化問題的方法, 其模擬了自然界物種的遺傳、交叉和變異的現(xiàn)象. 遺傳算法的每個個體可以視為最優(yōu)化問題的一個解, 并根據待求解問題的目標函數對每個個體進行評估, 給出每個個體的適應度. 當遺傳算法開始迭代時, 最初會隨機產生一定數量的個體, 并進行遺傳、交叉和變異產生新個體, 再根據個體適應度, 保留適應度高的個體, 淘汰適應度低的個體, 因此新個體遺傳了上一代的優(yōu)良性狀, 使得算法向問題更優(yōu)解的方向進行進化, 最終求出最優(yōu)解. 由于遺傳算法能夠解決全局最優(yōu)化問題, 對污水工藝優(yōu)化問題進行求解, 也不需要復雜計算, 且messy遺傳算法能夠適應污水處理工藝序列長度變化的情況,因此本文使用messy遺傳算法對污水處理工藝流程進行優(yōu)化.
由于污水處理領域內的計算機智能流程方案優(yōu)化推薦案例較少, 本文僅以有限的計算機知識與對環(huán)保領域的了解, 針對問題進行了遺傳算法的初步設計:
編碼: 在本文中采用了基于工序的表示方法, 該方法將工藝知識庫的工藝技術編碼為序列, 并根據它們在染色體中出現(xiàn)的順序加以解釋.
初始群體選取: 初始群體是從隨機生成的一定數目的個體中選擇最優(yōu)個體組成的. 選取最優(yōu)個體的過程迭代, 直到初始群體中個體數達到了預先確定的規(guī)模. 對于本文所研究的問題, 個體的工藝技術順序不受限制, 并且每個工藝技術從工藝庫中進行挑選.
總體衍變策略: 采取了交叉和變異概率隨迭代周期發(fā)生變化的自適應性遺傳算法, 個體選擇概率按照基于排序的適應度分配, 為保證迭代周期中適應度的穩(wěn)步上升, 采用錦標賽選擇法.
由于污水處理工藝編排是長度不固定的, 因此使用了messy遺傳算法, 但由于messy遺傳算法并非傳統(tǒng)的種群基因定長的遺傳算法, 所以其對應的交叉策略以切斷算子和拼接算子來代替, 切斷算子與拼接算子的定義在下一部分會詳細講解. 由于種群內每個個體的基因長度不盡相同, 為了保證變異的均勻性, 對于每次發(fā)生變異的個體, 其變異位的數量取決于基因長度乘以固定的比例.
以該初步設計為基礎, 本文在下一部分會根據污水處理的指標要求對算法的適應度函數以及選擇策略進行進一步的修改.
對于遺傳算法, 其選擇、交叉、變異的概率設定和具體函數方法將直接影響算法在最優(yōu)解方向上的收斂性. 采用自適應遺傳算法的思想, 群體在不同的適應度分布情況下交叉和變異的概率會隨之變化: 當群體中每個個體的適應度收斂于少數幾個值時交叉和變異概率會增加, 反之若個體的適應度分布比較分散時, 交叉和變異概率會減少.
Messy遺傳算法考慮到種群基因長度變化的特性,以切斷算子和拼接算子代替了原本的交叉操作, 從而保證了進化過程中基因長度的調整, 使個體的適應度值趨近于最優(yōu)的同時其它指標也貼近問題的要求, 即能夠解決污水處理工藝流程中水質達標、成本最低且不過度處理污染物的要求. 由于工藝模塊之間無嚴格的順序描述, 在種群中的個體經過拼接操作和變異操作后, 會對每個個體所對應基因的基因座按照工藝模塊在知識庫中的id進行升序排序, 以便操作和觀察. 而本節(jié)主要講述messy遺傳算法的詳細設計.
適應度函數的重新設計: 在實際的應用當中, 工藝模塊成本一般來講是比較大的數. 本次實驗所采用的數據當中, 每個工藝模塊的成本的取值區(qū)間為[1000,5000], 因此取得倒數后的值將會處于極小的區(qū)間范圍之內, 此時的適應度對比優(yōu)勢不明顯, 從而使個體適應度差異變小, 繼續(xù)優(yōu)化的潛能降低, 可能獲得某個局部最優(yōu)解.
為了防止種群進化過程中的局部收斂, 本文對適應度函數進行了重新設計:
其中,one_module_cost表示單個模組的成本, 一般取候選工藝庫中所有工藝模塊的平均成本或最大成本,ninit表示算法運行初期種群內所有個體基因長度(工藝序列長度)的初始值,total_cost為當前個體的基因所對應的工藝序列的總成本. 將成本值取倒數之后, 根據實際工藝候選項情況與初始基因長度, 使其乘以一個合適的常數, 作為個體的適應度. 與原來的適應度函數相比, 新的適應度函數放大了適應度的變化區(qū)間, 使個體適應度的對比更加明顯, 有效緩解算法過早收斂和局部收斂的問題.
選擇: 首先, 根據污水處理優(yōu)化問題的要求, 對種群內的所有個體進行是否能夠滿足污水處理要求的判斷, 將工藝流程不能將污水處理達標所代表的個體從種群中去除. 其次, 判斷種群中是否仍有滿足條件的個體: 如果沒有滿足條件的個體, 則算法結束, 無法根據給定的條件找出嚴格符合的個體, 即所有個體所表的工藝流程無法將污水處理達標; 如果有滿足條件的個體, 則將種群內的空缺位置以符合條件的個體進行隨機填補, 直到種群內個體的數量達到預設的種群規(guī)模.
對于經過第一步條件篩選后的種群, 使用錦標賽選擇策略選擇適應度較高的個體進入下一代. 該策略保證了種群的收斂性, 使較高適應度的個體能夠穩(wěn)定遺傳至下一代.
經過兩步選擇, 種群在符合給定條件的情況下, 能夠往高適應度方向進化.
切斷算子與拼接算子: 由于messy遺傳算法的特殊性, 以切斷算子和拼接算子代替原有的交叉操作.
切斷算子: 以預設的概率在個體所對應的基因中隨機挑選一個位置, 在此處將基因一分為二, 形成兩個新的個體. 在此過程中種群的規(guī)模將會擴大.
拼接算子: 以預設的概率挑選兩個個體, 將兩個個體的基因組合, 形成一個個體的基因型. 在經過切斷算子過程的種群中進行若干輪隨機篩選, 每次隨機兩個個體進行拼接, 形成的個體加入到新的種群, 直至種群規(guī)模達到預設規(guī)模. 其中, 兩個個體之間可能有重復的基因座(工藝模塊), 根據預設的工藝模塊可重復值b,若拼接后該工藝模塊的重復數量大于b, 則不將該重復模塊加入新個體.
變異: 在messy算法中, 基因的長度是不斷變化的,為了保證變異的均勻性, 每次的變異按照預設的變異比例使基因中的若干個基因座進行變異, 若變異后的基因座與原基因中的其他基因座有重復項, 則根據預設的可重復值b, 若變異后該基因座的重復數量大于b,則去除該基因座.
概率設定: 切斷算子與拼接算子取代了原有的交叉操作, 所以兩個操作的觸發(fā)概率均設定如下, 使用余弦函數, 對概率曲線進行處理[11]:
其中,T是當前進化代數,K是總進化代數. 切斷和拼接的概率隨著遺傳代數的增長逐漸減小, 目的是進化前期注重交叉運算, 全局搜索能力強.
類似于上述公式, 變異概率設定如下:
其中,T是當前進化代數,K是總進化代數. 變異概率隨著遺傳代數的增長逐漸增加, 目的是進化后期注重變異運算, 局部搜索能力強.
為使messy算法的進化策略清晰易懂, 下面給出該算法的流程圖, 如圖2所示.
圖2 Messy算法流程
以包含14個工藝模塊的工藝庫, 需要處理3種污染物的優(yōu)化問題為例, 以上述的遺傳算法對污水處理工藝流程優(yōu)化問題進行求解. 實驗硬件環(huán)境為處理器為Intel(R) Core(TM) i7-7700 CPU @ 3.60 GHz,GPU為GeForce GTX 1080 Ti, 內存為8 GB 的服務器,軟件環(huán)境為Python 3.6.0, Pandas 1.2.4, Numpy 1.20.2.用于候選工藝模塊的工藝庫數據如表1, 為系統(tǒng)隨機生成, 用于測試.
表1中工藝技術共有14種, 污染物有3種, 工藝初始長度為7.
表1 實驗用工藝庫數據
實驗的初始要求: 給定上述數據, 對污水處理工藝進行優(yōu)化推薦, 所推薦的工藝序列能夠使處理后的污水滿足給定的污染物百分比含量指標, 每種指標的百分比含量要求分別為0.6, 0.9, 0.6以下, 且該工藝序列為成本最低的序列. 另外, 工藝模塊的允許重復數量為1(即沒有重復的工藝模塊).
本文在messy遺傳算法的概率設定方面做了對比實驗, 包括固定變異和交叉概率的條件下以及變異和交叉概率隨進化代數變化的情況下算法的進化過程.并且實驗對每一輪進化所產生的最大適應度個體相對于給定條件所產生的條件誤差進行了測量, 條件誤差的大小反映了工藝序列是否“剛好滿足條件”, 如果誤差過大則說明該工藝序列“用力過度”, 處理的污染物比指標要求多很多, 以下是對條件誤差的定義:
其中,lrequirei表示第i項的指標要求,lindividuali表示個體在第i項的指標下的實際值. 將每一項的指標要求與個體的每一項指標下的實際值作差, 并且將所有差值相加后按指標數量求平均值, 最終所得結果即為條件誤差. 條件誤差反映了工藝序列的擬合程度.
在兩種情況下的實驗中, 所取工藝庫和進化策略相同, 除了變異和交叉概率不同, 并且進化代數均設為500代, 初始種群規(guī)模為200, 每次選擇競賽的規(guī)模為3, 工藝模塊的允許重復數量為1 (即沒有重復的工藝模塊).
首先是在固定變異或交叉概率的條件下, messy遺傳算法的實驗結果, 在本次實驗中固定變異和交叉概率分別取值為0.6和0.05, 在固定變異或交叉概率的條件下最大適應度隨進化代數的變化趨勢如圖3(a)所示, 在固定變異或交叉概率的條件下條件誤差隨進化代數的變化趨勢如圖3(b)所示.
其次是變異或交叉概率隨進化代數變化的條件下的實驗結果, 在變異或交叉概率隨進化代數變化的條件下最大適應度隨進化代數的變化趨勢如圖3(c)所示, 在變異或交叉概率隨進化代數變化的條件下條件誤差隨進化代數的變化趨勢如圖3(d)所示.
圖3中最大適應度表示當前迭代下種群個體的最大適應度, 適應度越大表示當前種群最優(yōu)個體對問題的解更優(yōu), 其詳細定義敘述在第3.2節(jié). 條件誤差表示了工藝序列的擬合程度, 即當前最優(yōu)個體的工藝編排剛好滿足污染物處理要求的程度, 越低表示越能夠剛好污染物處理滿足要求.
圖3 變異和交叉概率固定與不固定條件下的最大適應度與條件誤差變化趨勢
由圖3(a)和圖3(c)可以看出, 變異和交叉概率固定與變異和交叉概率不固定兩種情況下messy算法均取得了最優(yōu)解. 從圖3(b)和圖3(d)可以看出, 兩種條件下條件誤差最終保持在0.08到0.1之間, 說明擬合的效果較好. 并且在變異或交叉概率隨進化代數變化的情況下, messy算法不會發(fā)生過早的收斂, 能夠及時跳出局部最優(yōu)解.
在此工作中, 我們通過將工藝流程調度優(yōu)化問題進行數學化分析, 從而確定并設計了messy遺傳算法的進化策略, 將messy遺傳算法應用于污水處理工藝流程調度優(yōu)化問題. 通過實驗驗證messy遺傳算法在污水處理工藝流程調度優(yōu)化問題是可行且有效的. 在實際生產應用中, 可通過使用messy遺傳算法對污水處理工藝流程調度進行尋優(yōu), 設計出能夠滿足污水處理能力的情況下成本最低的污水工藝流程優(yōu)化方案,對污水處理廠實現(xiàn)提質增效具有重要意義.