一種基于多種群協同算法的給水管網污染源定位方法
【技術領域】
[0001] 本發明涉及控制科學技術領域,尤其涉及一種基于多種群協同算法的給水管網污 染源定位方法。
【背景技術】
[0002] -方面,由于污染事件是隨機的,可以在任意的時間內以隨機的質量注入到給水 管網的任意節點,因此,在一個傳感網絡的檢測中,如果傳感器的數目遠小于節點數目,則 傳感器所獲得的信息是不足以定位到精確的污染源。另一方面,污染源定位問題一般發生 在水質傳感器檢測污染物的濃度超過一定閾值后,這個時候說明已經發生了污染,因此,需 要快速實時確定污染源的狀態,比如污染源的位置、注入時間、注入質量等信息。隨著給水 管網的規模增大時,計算量呈現級數的增長級,因此現有技術很難快速精確定位到大規模 給水管網中污染源。
【發明內容】
[0003] 本發明實施例通過提供一種基于多種群協同算法的給水管網污染源定位方法,解 決了現有技術很難快速精確定位到大規模給水管網中污染源的技術問題。
[0004] 本發明實施例提供了一種基于多種群協同算法的給水管網污染源定位方法,包括 如下步驟:
[0005] 獲取給水管網中每個水質傳感器檢測到的污染物濃度;
[0006] 利用多種群協同算法隨機產生多個初始污染事件;
[0007] 污染物濃度模擬步驟:基于污染事件進行水力模擬和水質模擬,以得出污染物濃 度模擬結果;
[0008] 將所述污染物濃度與所述污染物濃度模擬結果進行匹配,獲得匹配誤差;
[0009] 在所述匹配誤差大于設定誤差時,利用所述多種群協同算法根據所述匹配誤差調 整優化方向進行循環搜索,直到找到全局最優解;
[0010] 所述匹配誤差在所述設定誤差范圍內時確定找到污染源位置。
[0011] 優選的,所述利用多種群協同算法隨機產生多個初始污染事件,包括:
[0012] 確定種群規模、最大迭代次數和平分子群個數;
[0013] 在主節點上初始化種群,其中,將所述種群平分為P個子群,所述種群中的粒子個 體的編碼包括管網節點位置、污染物質量向量、污染發生時間和污染截止時間;
[0014] 計算所述種群中每個粒子個體的適應值,并保存所述種群的最優解和最優個體。
[0015] 優選的,所述在所述匹配誤差大于設定誤差時,利用所述多種群協同算法根據所 述匹配誤差調整優化方向進行循環搜索,直到找到全局最優解,包括:
[0016] 利用所述種群在所述主節點上并行優化,找到包含所述最優解的N個種群,其中, 每個所述子群包括多個粒子個體;
[0017] 將所述P個子群分配給N個子節點;
[0018] 在Hadoop云計算平臺下運行Map-Reduce模型進行如下步驟:
[0019] a、在Mapper上運行單粒子群局部精度搜索算法進行局部搜索:所述N個子節點 分別進行局部極值點的維度搜索,并對每個所述粒子個體進行位置更新和速度更新;b、在 Reducer上對所述局部搜索的結果進行規約存儲;
[0020] 將所述局部搜索的結果合并得到的最優解集合與上一次迭代結果進行對比;
[0021] 若對比結果小于或等于所述設定誤差,則確定找到所述污染源位置,否則產生N 個新污染事件送往所述主節點,迭代次數加1后返回所述污染物濃度模擬步驟。
[0022] 優選的,所述產生N個新污染事件送往所述主節點,具體為:
[0023] 檢測需水量或水流模式是否發生改變;
[0024] 若所述需水量或所述水流模式發生改變,則直接對所述局部極值點進行柯西變異 來產生所述N個新污染事件;
[0025] 將所述N個新污染事件送入所述主節點。
[0026] 優選的,所述利用所述種群在所述主節點上并行優化,找到包含所述最優解的N 個種群,具體為:
[0027] 通過所述種群的最優個體之間距離判斷所述種群的聚集程度,以給出局部極值 點。
[0028] 優選的,所述通過所述種群的最優個體之間距離,判斷所述種群的聚集程度,以給 出局部極值點,具體為:
[0029] 所述種群的規模為20個時,當有3-5個種群之間距離小于設定閾值σ時,把所述 3-5個種群中最優個體的位置設置為斥力場中心點,通過如下公式建立斥力場:
[0031] 其中,表示斥力場,τι是位置增益系數,Ρ是所述斥力場外的種群到所述局部 極值點的距離,P。即為排斥半徑的閾值;在所述閾值設定的超球內產生斥力;
[0032] 在所述斥力場外的種群繼續并行搜索,以發現新的全局極值點。
[0033] 優選的,所述對每個所述粒子個體進行位置更新和速度更新,具體為:
[0034] 把每個所述粒子個體的位置矢量分成一定數量的子矢量,根據前一代粒子個體的 速度更新情況調整所述粒子個體的速度和位置。
[0035] 本發明實施例中提供的一個或多個技術方案,至少具有如下技術效果或優點:
[0036] 本發明實施例由于利用了多種群協同算法對污染源定位問題進行求解,當污染事 件發生后,可以快速精確定位到污染源,進而能夠提供精確的污染信息,有效解決了現有技 術很難快速精確定位到大規模給水管網中污染源的技術問題,從而消除污染事件引發的各 類風險,減小經濟損失及降低社會影響。
[0037] 進一步,以Hadoop云計算為平臺提出的基于Map-Reduce模型的多種群并行協同 優化方法,基于云平臺的分布式多種群協同計算可有效提升加速比,節約計算時間,進一步 提高了污染源定位效率。
【附圖說明】
[0038] 為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據 提供的附圖獲得其他的附圖。
[0039] 圖1為本發明實施例中基于多種群協同算法的給水管網污染源定位方法的流程 圖;
[0040] 圖2為本發明實施例中給水管網的實例示意圖。
【具體實施方式】
[0041] 為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例 中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是 本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員 在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0042] 參考圖1所示,本發明實施例提供的一種基于多種群協同算法的給水管網污染源 定位方法,包括如下步驟:
[0043] S101、獲取給水管網中每個水質傳感器檢測到的污染物濃度。
[0044] 具體的,如圖2所示,以給水管網有97個管網節點,2個水源,3個水池,117根管線 為例。假定在該給水管網放置了 3個水質傳感器,分別放置在編號為119、187、211的管網 節點處,由這3個水質傳感器檢測污染物濃度信息。
[0045] S102、利用多種群協同算法隨機產生多個初始污染事件。
[0046] 利用多種群協同算法隨機產生多個初始污染事件是在Hadoop云計算平臺上利用 多種群協同算法產生的。具體的,通過如下步驟隨機產生多個初始污染事件:
[0047] 步驟1、設定種群規模、最大迭代次數,平分子群個數。
[0048] 步驟2、在Hadoop(海杜普)云計算平臺下運行Map-Reduce模型,以在主節點 (Name Node)上初始化Μ個種群,每個種群中的粒子個體編碼包括管網節點位置、污染物質 量向量、污染發生時間和污染截止時間。具體的,Map-Reduce模型是一種編程模型,用于大 規模數據集(大于1TB)的并行運算。概念Map (映射)和Reduce (歸約)都是從函數式編 程語言里借來的。
[0049] 比如,在主節點上初始化20個種群,每個粒子個體的編碼如下:{:節點位置,污染 物質量向量,污染發生時間,污染截止時間}。將20個種群平分為Ml,M2, M3…Mp共P個子 群。
[0050] 計算Μ個種群中每個粒子個體的適應值,并保存Μ個種群的全局最優解和全局最 優個體。具體的,根據適應度函數計算出每個粒子個體的適應值,所使用的適應度函數具體 參考如下公式:
[0053] n e {1,N} (3)
[0054] Ts (4)
[0055] 其中,N是管網節點總數,Ns表示水質傳感器的數目,T 3表示仿真周期,M表示污染 物注入向量,η表示污染源注入的管網節點序號,、表示注入污染物的初始時間,c (t)表示 在時間t時水質傳感器j的污染物濃度,它是(Μ, n, 的函數,c/(t)表示在時間t時水質 傳感器j的實際檢測的污染物濃度。優化的目標即求(Μ,η,、)使得方差最小。
[0056] S103、污染物濃度模擬步驟:基于污染事件進行水力模擬和水質模擬,以得出污染 物濃度模擬結果。具體的,使用網平差軟件(ΕΡΑΝΕΤ)進行水力模擬和水質模擬從而得出 污染物濃度模擬結果。在具體實施過程中,在每次迭代中,所使用的污染事件互不相同,在 0次迭代中,所使用污染事件為S102中隨機生成的初始污染事件,在之后的迭代次數中,所 使用污染事件為每次迭代中進行柯西變異來產生的新污染事件,本文后續對柯西變異來產 生的新污染事件進行詳細描述。
[0057] S104、將污染物濃度與污染物濃度模擬結果進行匹配,獲得匹配誤差;
[0058] S105、在匹配誤差大于設定誤差時,利用多種群協同算法根據匹配誤差調整優化 方向進行循環搜索,直到找到全局最優解確定為污染源位置,匹配誤差在設定誤差值范圍 內確定