楊顏博,孫一鳳,杜永興,胡偉建,史湘楠
(內(nèi)蒙古科技大學 信息工程學院,內(nèi)蒙古 包頭 014010)
因受改革開放和市場經(jīng)濟的影響,農(nóng)村牧區(qū)人口紛紛流向城鎮(zhèn)[1],導致牧區(qū)勞動力嚴重減少;牧區(qū)放牧采用無目標式放牧方式,導致牧區(qū)草場出現(xiàn)嚴重過度放牧區(qū)域,過度放牧導致的草地資源嚴重退化已經(jīng)成為畜牧業(yè)經(jīng)濟發(fā)展和草地生態(tài)平衡的主要障礙[2];草原牧區(qū)自然條件不理想,放牧及牲畜管理難度很大[3].因此科學指導放牧對于減少牧民工作量和維持草畜平衡有著重要的意義.
近年來不少學者對放牧時空軌跡數(shù)據(jù)進行了研究,利用時空軌跡數(shù)據(jù)提出放牧強度估算方法[4];發(fā)現(xiàn)牲畜區(qū)域?qū)傩訹5];測算牲畜的采食行走速度[6],但很少人將軌跡數(shù)據(jù)運用到牲畜放牧路線規(guī)劃研究中.在路線規(guī)劃領域,陳呈利用算法對無人艇進行路徑規(guī)劃[7],王晨旸對復雜室內(nèi)環(huán)境進行了路徑規(guī)劃[8],但利用軌跡數(shù)據(jù)對牲畜放牧路線規(guī)劃的文獻較少.路徑規(guī)劃算法有模擬退火、人工勢場法、遺傳算法、蟻群算法等,因蟻群算法具有良好的尋找最短路徑能力和搜索特征,且強魯棒性等優(yōu)點,所以路徑規(guī)劃采用蟻群算法.關(guān)于蟻群算法的研究,學者們都進行了一系列的研究工作[9-12].JIAO Z等[13]采用自適應狀態(tài)轉(zhuǎn)移策略和自適應信息更新策略;CHEN X等[14]介紹了一個2階段的螞蟻算法,但少有文獻將改進點與實際放牧相結(jié)合.
基于上述原因,利用放牧時空軌跡數(shù)據(jù),提出基于改進蟻群算法進行放牧規(guī)劃的方案.文章的其余部分安排如下.第一節(jié)介紹試驗區(qū)概況和數(shù)據(jù)來源;第二節(jié)介紹輪牧區(qū)域劃分,起點和終點判定,環(huán)境建模和改進的蟻群算法;第三節(jié)對實驗結(jié)果進行分析;第四、五節(jié)進行討論總結(jié).
試驗區(qū)位于錫林郭勒大草原西北部的蘇尼特左旗巴彥淖爾鎮(zhèn)呼和淖爾嘎查,該地區(qū)屬于干早大陸性氣候,植被類型以荒漠草原和干草原植被為主[15].
實驗數(shù)據(jù)來源蘇尼特左旗巴彥淖爾鎮(zhèn)呼和淖爾嘎查某一牧區(qū)2019年羊群軌跡數(shù)據(jù)記錄,由羊群放牧過程中頭羊所佩戴的定位項圈按照每10 min左右產(chǎn)生的連續(xù)定位數(shù)據(jù),其中對原始數(shù)據(jù)進行清洗和預處理并對其數(shù)據(jù)進行分布式放牧強度估算,得到牧區(qū)過度放牧軌跡數(shù)據(jù),使用的方法是基于杜永
興等[4]人提出的放牧強度估算方法.這些數(shù)據(jù)將在環(huán)境建模中被填充為障礙物.其中數(shù)據(jù)包括過度放牧區(qū)域中心經(jīng)緯度坐標、區(qū)域大小、過度比率、采集更新時間、養(yǎng)殖戶等.
將牧區(qū)劃分區(qū)域,進行輪牧,輪牧區(qū)域的劃分根據(jù)載畜能力來計算.載畜能力是指草場在中等程度利用下全年放牧期內(nèi)可能容載的牲畜最大定額.《錫林郭勒盟牧區(qū)牧業(yè)人口承載量研究》這一文獻中提出錫林郭勒盟北部牧區(qū)載畜能力為0.5羊/公頃/年[16],即1羊/0.006 hm2/d.某牧民有m頭羊,S公頃,可劃分輪牧區(qū)塊數(shù)n按下式計算:
(1)
假設m=300頭,S=441公頃,所分塊數(shù)n=245,下圖為劃分輪牧區(qū)域示意圖,如圖1所示.
當前區(qū)域中所含草場資源與載畜量相等,然而區(qū)域中可能包含已放牧區(qū)域,因此區(qū)域不足以承擔羊群進行采食,所以在此基礎上需進行進一步劃分,流程如下:
(1)找出區(qū)域含有最大過度放牧區(qū)域fi的區(qū)域Si,則Si區(qū)域中可利用面積Δi=Si-fi.
(2)計算與Si相鄰的2個區(qū)域可利用面積Δi+1,Δi-1.
(3)若{(Δi+1+Δi+Δi-1)/2}-S≥0即表明Δi區(qū)域平分到相鄰的2個區(qū)域可滿足載畜量需求,并將Δi平分到相鄰2個區(qū)域進行第四步操作.若不滿足上述條件則進行第三步.
(4)當fi+fi+1≥S/n,fi+fi-1≥S/n2個條件都滿足則將Δi分給相鄰2個區(qū)域中過度區(qū)域小的區(qū)域進行第四步操作;若2個條件滿足其中一個,則選擇將Δi分給對應滿足條件中的區(qū)域進行第四步操作;若上述條件都不滿足則將這3個區(qū)域合并為1個區(qū)域,在與相鄰2個區(qū)域進行第一步操作.
(5)找出除Si區(qū)域其余區(qū)域中過度放牧最大的區(qū)域Si′,再重復2,3兩步.直到每個區(qū)域的可利用面積都滿足載畜量要求,劃分結(jié)束.
這樣的劃分可以讓每一個輪牧區(qū)域的可采食面積都可以滿足載畜量的要求.
在建模過程中對牧區(qū)進行區(qū)域范圍的設定,將羊群在放牧過程中產(chǎn)生的過度放牧區(qū)域設置為障礙物.
在障礙物填充過程中發(fā)現(xiàn),障礙物縮放比例會影響到算法效果和放牧效果.針對這種情況,對過度放牧區(qū)面積進行統(tǒng)計,多次建模試驗和實際羊群數(shù)量比對,一柵格的面積應該在一定誤差的情況下,容納所有采食的羊群.本實驗中一柵格面積為0.09 hm2.
在利用算法進行路徑規(guī)劃時,路徑的起點和終點是根據(jù)真實情況進行設定,設定了一種準則.起點為軌跡數(shù)據(jù)中每天開始進行放牧活動的經(jīng)緯度點;終點為利用載畜量劃分區(qū)域后,該區(qū)域離起點較遠的點.
蟻群算法是進行路徑規(guī)劃時常用的一種啟發(fā)式算法.信息素在蟻群算法中發(fā)揮重要的指引作用.算法中信息素更新分2部分,一是螞蟻分泌的信息素;二是隨著時間推移揮發(fā)的信息素.如果螞蟻陷入死角沒有找到目標點,螞蟻仍會釋放信息素,這些信息素會給其它的螞蟻帶來錯誤訊息.選擇錯誤路徑的數(shù)量越多,錯誤路徑上信息素也越多,算法收斂速度變慢.并且在傳統(tǒng)蟻群算法中,螞蟻選擇下一節(jié)點是通過輪轉(zhuǎn)賭法決定,所以螞蟻的走向并不是確定性的.通過之前螞蟻無方向性的行走,才可確定最優(yōu)路徑,雖然在此過程中會出現(xiàn)小部分螞蟻選擇錯誤方向路徑,但在全局搜索最優(yōu)路徑時仍會影響到蟻群算法的收斂速度.針對這2個問題,對傳統(tǒng)蟻群算法進行了2方面的改進工作.
(1)信息回溯機制.當檢測到螞蟻陷入死角時,信息素回溯到上一只螞蟻狀態(tài).這樣即使螞蟻行走錯誤路徑而遺留下來信息素也會回溯到上一步的狀態(tài),不會讓錯誤的信息素影響后面螞蟻的選擇,減少蟻群對錯誤路徑的選擇.回溯機制公式如下所示:
(2)
式中:t為時刻;ρ為信息素揮發(fā)系數(shù);Δτ為殘留信息素.
(2)動態(tài)檢測機制.因為牧區(qū)進行了輪牧區(qū)域劃分,所以目標點和起點的相對位置已知,每次判斷螞蟻行走方向是否在正確方向區(qū)域,指引螞蟻在正確方向上進行尋路,即規(guī)定區(qū)域方向?qū)ぢ?算法中的起始點和目標點位置不產(chǎn)生變化,但每次尋找下一步可走節(jié)點時它和終點的相對位置都會發(fā)生變化,所以在每一次進行節(jié)點選擇時都要對節(jié)點和目標點進行位置檢測.檢測算法流程是將目標點設置為固定位置,判斷相對位置所在區(qū)域.
通過信息素回溯和劃分過牧區(qū)域設置動態(tài)檢測機制提高算法收斂速度,并將其運用到羊群放牧軌跡規(guī)劃中.改進算法流程圖如圖2所示.
對于障礙物填充采用膨脹化處理,膨脹化處理的原則為:不滿一柵格的按照一柵格計算.膨脹化處理也防止羊群進入不足以進行采食活動的區(qū)域活動.
進行環(huán)境建模的牧區(qū)如圖3所示.
牧民牧場面積441 hm2,經(jīng)過劃分輪牧區(qū)進行計算,其劃分為175個區(qū)域,并且每個區(qū)域的放牧周期為1 d進行輪流放牧活動.在模擬建模圖中每個輪牧區(qū)域占20個柵格.進行算法計算,得到規(guī)劃路線如圖4所示,圖中實線為規(guī)劃路徑.
并且在相同柵格環(huán)境下傳統(tǒng)算法和改進算法進行了收斂性的對比,算法各項參數(shù)相同,對比如圖5所示.
對軌跡路線和算法進行分析,結(jié)果表明該方法可以有效避開過度放牧區(qū)域,將改進后的算法與未改進的進行比對驗證,改進后的效率有著明顯的提高,收斂速度提高了28%.可以為之后的科學化放牧提供可靠的技術(shù)支持.
在利用蟻群算法進行路徑規(guī)劃前,輪牧區(qū)域的劃分是關(guān)鍵部分,如果輪牧區(qū)域劃分不合理,將會導致影響后面算法的尋路部分.當劃分區(qū)域不滿足牧民放牧天數(shù)時應進行短暫休牧,防止過度放牧.所以之后的研究可以結(jié)合氣候影響草勢生長情況,更好的劃分輪牧區(qū)域和規(guī)定輪牧區(qū)的輪牧天數(shù).
軌跡路線可以很好地躲避障礙物即過度放牧區(qū)域,找到較短路徑,并可以轉(zhuǎn)化為實際牧場的經(jīng)緯度,供無人機或無人小車進行放牧活動.
為了更好地解決牧區(qū)過度放牧的問題,需要對放牧活動進行規(guī)劃,并結(jié)合羊群軌跡數(shù)據(jù)盡量減少對過牧區(qū)域進行采食活動.本研究以蘇尼特左旗巴彥淖爾鎮(zhèn)呼和淖爾嘎查某一牧民牧區(qū)為例,利用蟻群算法對羊群放牧軌跡路線進行了規(guī)劃,結(jié)果顯示:該方案可以運用在羊群放牧中,并且可以為之后的無人機放牧提供技術(shù)支持.