陳曉燕 姚高偉 張鯤 王海豐



摘要:針對傳統農業中種植者不能全面掌握農作物的生長狀況,提出在農作物區放置無線傳感器,傳感器節點定位直接影響數據的采集,通過設計節點定位模型,將遺傳算法引入到定位技術中,設計適應度函數、染色體編碼、選擇算子、交叉算子、變異算子。仿真實驗表明:將遺傳算法應用于無線傳感器節點定位中,能更精確計算未知節點的坐標,更好的為農業服務。
關鍵詞:遺傳算法;傳感器;節點定位
中圖分類號:TP301 文獻標識碼:A DOI:10.3969/j.issn.1003-6970.2015.04.001
0.引言
在人口眾多的中國,所有的產業中,農業一直占據著重要的位置。但在我國,將科技投入到農業中的區域比較少,大部分的農民往往通過經驗來判斷土地的狀況以及農作物的生長情況,傳統的依靠人工進行數據采集的形式在實時性、精確性和便捷性等方面嚴重制約了農業的發展。要提高農業經濟效益,其中的一個重要環節是實時獲取農作物的數據,無線傳感器網絡技術應用在農業中,正好能彌補傳統數據采集中的不足,讓種植者實時的掌握農作物生長環境的狀況。在無線傳感器網絡中,一個重要的內容是傳感器節點定位,沒有位置信息的監測是沒有任何意義的,因此,節點定位技術在無線傳感網絡中顯得尤為重要。
經過國內外研究人員的共同努力,目前已有不少的無線傳感器網絡的節點定位方法,這些節點定位方法是:在傳感器網絡中,散布一些配備有GPS系統的特殊傳感器節點,文獻提出了基于測距的定位,在這種定位方法中,處于網絡中每個未知節點都需要測量其與各參考節點之間的距離。考慮到傳感器節點的特點,此測距方法不能增加額外硬件,并且測量還要保證一定的精度。文獻提出了集中式計算的定位和分布式計算的定位,在集中式計算的定位算法中,要求網絡中部署中心節點,其余傳感器節點把采集的相關信息傳送到中心節點,并通過中心節點的運算得出每個節點的位置信息。這類算法可以不受計算和存儲性能的限制,獲得相對精確的定位,但是由于定位運算對中心節點的過分依賴性,在中心節點附近的節點可能會因為通信開銷過大而成為瓶頸,并過早消耗完能源,導致整個網絡與中心節點信息交流受阻或中斷。
1.無線傳感器節點定位概述
傳感器節點定位對于無線傳感器網絡來說,起著至關重要的作用,是無線傳感器網絡系統部署完成后面對的首個問題,這是因為獲取信息的節點位置或事件發生的位置包含了傳感器節點監測消息中的重要信息,沒有信息位置的監測消息通常是沒有意義的,因此,在無線傳感器網絡中研究節點定位顯得非常有必要,而且十分有意義。
在無線傳感器網絡中,由于傳感器節點規模大且隨機部署、可靠性差、無線模塊間的通信距離有限,因此對定位算法提出了較高的要求。通常要求無線傳感器網絡的定位算法具備以下幾個特點:
(1)健壯性:傳感器節點的硬件配置低、可靠性差、能量少,測量距離時會產生誤差,因此要求算法必須具有較好的容錯性。
(2)自組織性:算法要求隨機部署的傳感器節點不能依靠全局的基礎設施協助定位。
(3)能量高效:通信開銷是傳感器網絡的主要能量開銷。算法要求盡可能地減少節點間的通信開銷,以延長網絡的生命周期。
(4)分布式計算:算法要求每個節點計算自身位置,不能將所有的信息傳送到某一個節點后進行集中計算。
2.遺傳算法
遺傳算法(Genetic Algorithm,簡稱GA)起源于上世紀六十年代,借鑒生物學中進化論的思想,從中提取的一種進化算法,借助計算機模擬在種群的繁殖過程中,父代遺傳基因的重組和優勝劣汰,主要用來解決科學研究中的復雜問題。
3.基于遺傳算法的傳感器節點定位
節點定位的基本思想:讓每一個未知節點用最小的代價獲得足夠多的參考節點的位置信息,以及它與這些參考節點的位置關系,參考節點的選取往往是通信能力強的,在整個網絡中具有很好的特性的節點,讓這樣的節點保存下來,更好的服務于網絡中的其他節點。一個比較有用的方法就是融入遺傳算法,因為遺傳算法的最基本的思想就是:將眾多群體中的最優個體保存下來,讓它的優良特性遺傳到下一代個體當中,并且能讓群體中的一些個體的基因位發生基因突變,以便更好的適用于我們的應用需求。正是遺傳算法的種種優點,使得將遺傳算法融入到傳感器節點部署當中去,有著很重大的意義。
3.1傳感器節點定位模型設計
對于處在作物區的傳感器節點的位置信息作如下的數學描述。
(1)投放在農作物區的傳感器節點數目為M,每個傳感器節點的坐標經過測量獲得,節點的坐標為(x,y)。
(2)農作物區不同的傳感器節點之間的距離表示為Di,其中i為農作物區中的第i個節點,j為農作物區中的第i個節點。
對農作物區的已知坐標的傳感器節點稱為信標節點,這樣的節點通常是通過攜帶GPS定位設備獲得自身的精確位置,由于攜帶GPS成本高,在實際的農業應用中,信標節點的個數是比較少的,其他節點的坐標是通過計算的方法獲得,這樣大大的節省了開支。在二維平面中,如果已知三個信標節點的坐標,則未知坐標的傳感器節點可通過如下的方法計算出來。