李純思,衣淑娟
(黑龍江八一農(nóng)墾大學(xué) 工程學(xué)院,黑龍江 大慶 163319)
?
水稻浸種催芽箱溫度傳感器優(yōu)化配置
—基于遺傳算法
李純思,衣淑娟
(黑龍江八一農(nóng)墾大學(xué) 工程學(xué)院,黑龍江 大慶 163319)
利用改進(jìn)的遺傳算法作為水稻浸種催芽箱溫度傳感器數(shù)量和位置的優(yōu)化算法,對傳感器進(jìn)行了優(yōu)化配置。以傳感器獨立性及數(shù)據(jù)相關(guān)特性作為適應(yīng)度函數(shù),使用實測數(shù)據(jù)作為溫度傳感器優(yōu)化配置的處理數(shù)據(jù),最終得到10個傳感器的優(yōu)化配置。與逐步累積配置方法進(jìn)行對比分析表明,遺傳算法用于傳感器優(yōu)化配置可得到最優(yōu)化結(jié)果。
水稻;浸種催芽;遺傳算法;優(yōu)化配置;溫度傳感器
為使寒地水稻生長積溫實現(xiàn)穩(wěn)產(chǎn)高產(chǎn)的目標(biāo),黑龍江墾區(qū)采用溫室集中浸種催芽方式進(jìn)行育秧??刂平N催芽箱內(nèi)的溫度適合于稻種的破胸發(fā)芽,最終實現(xiàn)水稻秧苗茁壯成長[1]。浸種催芽箱內(nèi)的溫度檢測和控制是影響催芽效果的重要因素之一。如何使用盡量少的溫度傳感器獲取種箱內(nèi)溫度分布并實現(xiàn)溫度的精確監(jiān)測,成為浸種催芽系統(tǒng)的一個主要研究方向。遺傳算法作為一種廣泛應(yīng)用于優(yōu)化設(shè)計的智能算法,用于種箱內(nèi)溫度傳感器的優(yōu)化配置,可將種箱內(nèi)的溫度信息準(zhǔn)確快速采集,實現(xiàn)水稻浸種催芽過程的標(biāo)準(zhǔn)化和智能化[2]。
應(yīng)用于浸種催芽箱溫度傳感器優(yōu)化配置的遺傳算法原始數(shù)據(jù)來源于黑龍江省建三江分局前進(jìn)農(nóng)場。設(shè)置48個傳感器于種箱內(nèi)且采用ZigBee無線傳輸模式發(fā)送回控制中心。由于采集到溫度數(shù)據(jù)較多,定時采集到的傳感器數(shù)據(jù)并不能保證100%被智能控制中心接收到。原始數(shù)據(jù)示例如表1所示。
傳感器優(yōu)化配置是用盡可能少的傳感器獲得種箱內(nèi)盡可能準(zhǔn)確的溫度分布;其次是可以實現(xiàn)部分溫度模態(tài)的數(shù)據(jù)重點采集[3]。本文選用不同分布位置的溫度傳感器實測數(shù)據(jù)的線性相關(guān)系數(shù)作為適應(yīng)度函數(shù)值。若設(shè)第i組和第j組模態(tài)向量分別為Φi和Φj,其相關(guān)系數(shù)的函數(shù)表示為
(1)
其中,Φi={φ1,φ2,…φn},Φj={φ1,φ2,…φn}分別表示不同傳感器測得的兩組溫度數(shù)據(jù);cov(Φi,Φj)=E(Φi-E(φi))E(Φj-E(φj)) 表示兩個向量的協(xié)方差。σi和 σj分別為相應(yīng)的標(biāo)準(zhǔn)差,具體表達(dá)式為
(2)
需要說明的是,由于向量的相關(guān)系數(shù)為兩個向量的計算,所以每個向量的相關(guān)系數(shù)值為與另外一個向量所共有。
本文采用MatLab7.0軟件進(jìn)行數(shù)據(jù)處理和計算,最終的數(shù)據(jù)存儲于Microsoft Office Excel 2003表格中,由函數(shù)xlsread讀取。本文將純數(shù)據(jù)文件保存為cssj02.xls中,且保存在其sheet2頁。所以,采用讀取語句為:[NUM]=xlsread(’cssj02.xls’,2)。
由于每個傳感器每隔1min便會從傳感器傳回1組數(shù)據(jù),所以每個傳感器采集到的數(shù)據(jù)成千上萬。為了使數(shù)據(jù)的相關(guān)計算用時相對較少,采用MatLab語句截短數(shù)據(jù),只取其中20個數(shù)據(jù),并使用corrcoef(x)函數(shù)進(jìn)行數(shù)據(jù)的相關(guān)計算。其中,x可以為行向量或列向量,也可以是m×n的矩陣。當(dāng)為m×n矩陣時,corrcoef(x)函數(shù)計算每列數(shù)據(jù)間的相關(guān)系數(shù),并將其存儲于n×n矩陣形式。圖1給出了傳感器數(shù)據(jù)列向量的相關(guān)系數(shù)矩陣。行和列的標(biāo)號1,2,3,…分別對應(yīng)于傳感器編號。從圖1可以看到:每個傳感器自相關(guān)系數(shù)為1,而互相關(guān)系數(shù)具有實對稱性質(zhì),所以相關(guān)系數(shù)矩陣為實對稱矩陣。
表1 原始溫度傳感部分?jǐn)?shù)據(jù)
圖1 傳感器數(shù)據(jù)列向量的相關(guān)系數(shù)矩陣Fig.1 The sensor data correlation coefficient matrix of the columns
2.1 逐步累積法
采用逐步累積法進(jìn)行傳感器優(yōu)化配置,第1步要選取最佳傳感器[4]。由于相關(guān)系數(shù)計算是兩個傳感器溫度數(shù)據(jù)的共同值,所以本論文通過sum()函數(shù)、min()函數(shù)和find()函數(shù)找到相關(guān)系數(shù)的最小值及最小值在相關(guān)系數(shù)矩陣中的位置,該最小值在系數(shù)矩陣中的行與列也關(guān)于對角線對稱,即(行9,列23)和(行23,列9)兩個。由于以相關(guān)值最小作為傳感器優(yōu)化配置的目標(biāo),所以通過計算每個傳感器數(shù)據(jù)與其余47個傳感器的相關(guān)系數(shù)之和最小,確定第9與第23號傳感器哪一個為最佳傳感器。該確定過程使用sort()函數(shù)和if語句實現(xiàn)。具體的程序段如下所示:
rela_min=min(min(corela));
[row,column]=find(corela==rela_min);
row=sort(row);
total_rela=sum(corela);
if total_rela(row(1))>=total_rela(row(2))
corela(row(2),:)=NaN;
corela(:,row(2))=NaN;
sensor1=row(2);
else
corela(row(1),:)=NaN;
corela(:,row(1))=NaN;
sensor1=row(1);
end
其中,if語句中的賦值NaN,表示在選擇第i個傳感器后,需要將第i個傳感器與其它傳感器的相關(guān)計算值在相關(guān)矩陣中抹去,剩余相關(guān)矩陣得到一次降維。降維后的矩陣用來選擇下一個最佳傳感器。在后面的操作中,將下一個最佳傳感器加入到優(yōu)化配置中。因為傳感器數(shù)據(jù)按對溫度分布狀態(tài)的影響最佳程度進(jìn)行逐個添加,從而實現(xiàn)傳感器優(yōu)化配置的逐步累積計算。
要從48個傳感器中找到最佳溫度傳感器組合,就要對這些傳感器進(jìn)行適應(yīng)度的排序。通過將所得到的傳感器排序進(jìn)行記錄,最終得到48個位置傳感器的排序,如表2所示。
表2 48個傳感器位置排序表
2.2 遺傳算法
每個傳感器采集到的溫度數(shù)據(jù)對溫度場分布的貢獻(xiàn)率事前先不能完全確定,為避免優(yōu)化搜索過程的隨機(jī)選擇,只能以某種概率進(jìn)行選擇。這也是遺傳算法有別于隨機(jī)搜索算法的重要特征[5]。本文利用線性概率密度分布法實現(xiàn)遺傳算法的選擇操作。即若假設(shè)排序第1的傳感器被選中的概率為c,第2的傳感器被選中的概率為c(1-c),…,于是得到每個傳感器選中概率為
pi=c(1-c)i-1
(2)
其中,i為個體的排序數(shù)。
若要使得概率分布在MatLab上實現(xiàn),首先確定參數(shù)c;然后設(shè)計每個傳感器的被選中概率值。MatLab中的rand函數(shù)用于在0~1之間按均勻概率產(chǎn)生數(shù)值。將0~1分為不同寬度的間隔,落在某個間隔內(nèi)的概率即為本間隔對應(yīng)的傳感器的概率。具體程序如下:
for i=1:48
prob(i)=c*(1-c)^(i-1);
end
prob=cumsum(prob);
prob=prob/prob(48);
aa1=rand;
bb=48-sum(aa1<=prob)+1;
其中,for循環(huán)實現(xiàn)48個傳感器對應(yīng)的選中概率大?。籧umsum(A)函數(shù)實現(xiàn)數(shù)組各行的累加值。對于prob的累加,使prob數(shù)組的每個值對應(yīng)于0~1范圍的數(shù)軸坐標(biāo),每兩個坐標(biāo)間的距離寬度即為被選中的概率;倒數(shù)第3句的作用是使得選中概率歸一化。
交叉是選擇操作之后的下一步操作。遺傳算法中交叉點的選擇可以有多種:一點交叉、兩點交叉和一致性交叉[6]。但是,本文要研究48點溫度傳感器的優(yōu)化配置,多基因片段的交叉可能會錯過最優(yōu)個體的選擇,且類似于隨機(jī)搜索的結(jié)果。所以,本文改進(jìn)算法的交叉方式為定長基因交叉,即每次選中1個傳感器與上一代個體進(jìn)行交叉[6]。
變異操作的實現(xiàn)采用列舉法,即選中1個傳感器號逐次取代某代個體任意位置上的傳感器號,然后對取代結(jié)果進(jìn)行比較,選出最優(yōu)傳感器組合。
遺傳算法對溫度傳感器進(jìn)行優(yōu)化配置,首先要產(chǎn)生初始群體。遺傳算法作為一種概率性搜索算法,概率性在其計算過程中一直起著非常重要的作用,所以初始群體的產(chǎn)生也應(yīng)該從概率的角度入手,得到傳感器優(yōu)化相近似的個體[7]。
假設(shè)傳感器采集到的數(shù)據(jù)沒有誤差或誤差很小,對遺傳算法第1代個體間的相關(guān)系數(shù)影響較小的情況下可以不考慮誤差,而認(rèn)定數(shù)據(jù)具有絕對準(zhǔn)確性[7]。根據(jù)傳感器提供的誤差說明可知,這種假設(shè)在實際應(yīng)用的情況下是合理的。在無誤差情況下,先對48個傳感器采集到的數(shù)據(jù)進(jìn)行相關(guān)計算,并對每一個個體與其它47個傳感器的相關(guān)參數(shù)進(jìn)行求和。大多數(shù)情況下,如果某個傳感器與其它47個傳感器的相關(guān)系數(shù)和最小,那么在選定10個傳感器作為傳感器優(yōu)化配置的第1代時,它與其它9個傳感器的相關(guān)系數(shù)和也可能較小,甚至達(dá)到最小。這樣選擇的第1代在實際遺傳搜索時可以節(jié)省搜索的次數(shù)。本優(yōu)化配置的溫度傳感器數(shù)據(jù)存儲于cssj02.xls的excel工作薄的第2個工作中,采用MatLab語句實現(xiàn)數(shù)據(jù)的讀取、截短、相關(guān)運算、相關(guān)系數(shù)求和等操作語句如下:
[NUM]=xlsread('cssj02.xls',2); %讀取硬盤中的文件數(shù)據(jù)
x=NUM(1:20,:);
corela=corrcoef(x);%求得48個傳感器的相關(guān)系數(shù)
sen_core=sum(corela);
xlsread(filename,sheet)函數(shù)是針對excel表格進(jìn)行讀取數(shù)據(jù)的函數(shù)。第1個參數(shù)filename指定文件名及文件夾的硬盤地址,在只填寫文件名的情況下讀取本文件內(nèi)的excel工作薄數(shù)據(jù)。第2個參數(shù)sheet可以選擇所在的工作表,當(dāng)參數(shù)省略時讀取工作薄的第1個工作表。corrcoef(x,y)函數(shù)的功能是完成兩個向量或數(shù)列x和y的相關(guān)計算,形成2×2的矩陣,非對角線元素即為二者的相關(guān)系數(shù),對角線元素為自相關(guān)系數(shù)1。當(dāng)然,corrcoef函數(shù)的參數(shù)也可以是矩陣X,它將以X的每一列看作向量,對所有向量進(jìn)行相關(guān)運算。若X是m×n的矩陣,則可產(chǎn)生一個n×n的相關(guān)系數(shù)矩陣,該矩陣為一對稱矩陣。Sum(corela)函數(shù)是對corela的每一列的求和,是每一個溫度傳感器數(shù)據(jù)與所有傳感器的相關(guān)系數(shù)之和。
對48個傳感器的自相關(guān)系數(shù)和進(jìn)行排序,即對每個傳感器對所測得的溫度分布的貢獻(xiàn)大小進(jìn)行排序。編寫了排序函數(shù)ar_order,排序的方法是將傳感器相關(guān)系數(shù)和按從小到大的順序進(jìn)行排列,最終的結(jié)果是得到相關(guān)系數(shù)和從小到大排列的傳感器的編號的排序,將排序的結(jié)果賦給order_num參數(shù)。取order_num的前10個傳感器數(shù)據(jù)組成第1組傳感器配置方案,第11到第20號傳感器組成第2組傳感器配置方案。計算每組方案中的10個傳感器之間的相關(guān)系數(shù)和,然后拿第2組的相關(guān)系數(shù)和與第1組中的各個傳感器的相關(guān)系數(shù)和進(jìn)行比較;若出現(xiàn)第2組中的相關(guān)系數(shù)和小于第1組某號傳感器的情況,則進(jìn)行替換,優(yōu)化得第1組傳感器配置方案的相關(guān)系數(shù)總和趨于最小。替換完后的第1組傳感器配置方案才形成遺傳算法的第1代。對于產(chǎn)生的第1代傳感器優(yōu)化配置的傳感器貢獻(xiàn)率進(jìn)行排序,其目的是更加明確哪個傳感器是最優(yōu)的。使用的MatLab語句為:
order_num=ar_order(sen_core);%調(diào)用自己編寫的ar_order函數(shù)實現(xiàn)排序功能
generic11=order_num(1:10,1);
generic12=order_num(11:20,1);
gene1=sum(corela(generic11,generic11));
gene2=sum(corela(generic12,generic12));
generic1=exchange_ge(gene1,generic11,gene2,generic12); %完成兩個一代的交換
sum_ge1=sum(corela(generic1,generic1)); %新一代的相關(guān)系數(shù),并已經(jīng)求和
gen1=ar_order1(sum_ge1); %對它進(jìn)行了排序,但是序號是1~10
將第1個傳感器為溫度檢測最優(yōu)傳感器,并將它對溫度檢測的有效度定義為100%,其它傳感器的有效度以第1個傳感器數(shù)據(jù)的有效度為參考進(jìn)行歸一化處理,并將48個傳感器的有效度繪于圖2中。這樣做圖的目的是為了更加清晰地看出每個傳感器的有效度變化規(guī)律,同時也能看到次優(yōu)傳感器的有效度逐漸下降的特性。從傳感器有效度排序中可以很清楚地得到每個位置傳感器對溫度分布狀態(tài)的影響順序。由圖2中可以看到:按平均下降方式來看,對溫度分布模態(tài)貢獻(xiàn)較大的前10個傳感器有效度都大于50%(即0.5);若按自然對數(shù)下降方式來看,貢獻(xiàn)較大的前15個傳感器的有效度都大于exp(-1)。
圖2 傳感器有效度變化規(guī)律圖Fig.2 Sensor effective degree change rule
從該角度來看,根據(jù)溫度傳感器對信息的表達(dá)精細(xì)程度的不同,傳感器數(shù)量可以設(shè)置在10~15個之間,即可滿足不同場合對溫度傳感器優(yōu)化配置要求。本文的種箱溫度傳感器優(yōu)化配置方面,10個傳感器的優(yōu)化配置不但精度較高且布點數(shù)較少,已經(jīng)可以看作是種箱溫度傳感器配置中經(jīng)濟(jì)條件較寬裕情況下的優(yōu)化配置方案。
使用逐步累積法實現(xiàn)了傳感器優(yōu)化配置,截短逐步累積法的溫度傳感器排序,使優(yōu)化配置方案中的傳感器數(shù)目為10。同時,利用遺傳算法也進(jìn)行了傳感器數(shù)目為10的優(yōu)化配置計算。首先列出由逐步累積法和遺傳算法進(jìn)行傳感器優(yōu)化配置的10個傳感器位置編號,如表3所示。這里需要說明的是,沒有對遺傳算法的10個傳感器的有效度進(jìn)行排序。
表3 逐步累積法和遺傳算法的優(yōu)化傳感器配置方案
Table 3 Cumulative method and genetic algorithm to optimize the sensor configuration scheme
序號逐步累積法遺傳算法1938234936374323
續(xù)表3
由表3可以看出:逐步累積法對溫度傳感器的配置方案與遺傳算法中溫度傳感器的編號不一致。其中,9、23、34、3、2、6等6個傳感器編號相同,其余4個傳感器配置不同。這是因為逐步累積法中的某傳感器的選中是基于它與其余47個傳感器的非相關(guān)度;而遺傳算法則是對選中的10個傳感器的非相關(guān)度進(jìn)行的選擇。從數(shù)學(xué)角度分析(即逐步累積法)一般不能得到最優(yōu)解,只能得到次優(yōu)解;而遺傳算法由于加入了智能化搜索程序,一般可以達(dá)到配置的最優(yōu)解。
圖3給出了兩種優(yōu)化算法中10個傳感器的相關(guān)系數(shù)關(guān)系圖。
從圖3中可以看到:逐步累積法中的傳感器與其它傳感器的相關(guān)數(shù)數(shù)高于遺傳算法。相關(guān)系數(shù)表現(xiàn)了傳感器間的關(guān)聯(lián)性,相關(guān)系數(shù)高說明傳感器的獨立性較差。雖然使用逐步累積法進(jìn)行優(yōu)化的過程中,選擇的第1個傳感器為48個傳感器中相關(guān)系數(shù)最小的一個,但是當(dāng)它與其余9個被優(yōu)化選出的傳感器進(jìn)行計算時,卻不是最優(yōu)的。這也說明了逐步累積法在傳感器配置中有可能會得到局部最優(yōu)解;而遺傳算法的傳感器優(yōu)化針對于最終模式進(jìn)行選擇,得到的是全局最優(yōu)解。
根據(jù)傳感器優(yōu)化配置結(jié)果,對傳感器的所測溫度分布結(jié)果的優(yōu)劣進(jìn)行了分析。若設(shè)優(yōu)化配置的10個傳感器對溫度分布的遺傳算法最優(yōu)貢獻(xiàn)率為100%,對每個傳感器的貢獻(xiàn)率進(jìn)行計算,并且逐步累加得到兩種優(yōu)化配置的相對貢獻(xiàn)率如圖4所示。從圖4中可以看到:第1個傳感器的兩種優(yōu)化算法的溫度分布測量貢獻(xiàn)率是一致的;但是從第2個傳感器到第10個傳感器的累加過程中,貢獻(xiàn)率發(fā)生差異,即逐步累積法的測溫貢獻(xiàn)率不如遺傳算法貢獻(xiàn)率。從10個傳感器最終的累加結(jié)果可以看出:逐步累積法對最優(yōu)測溫的貢獻(xiàn)率大約為遺傳算法的58%。通過兩種方法的對比,遺傳算法所進(jìn)行的溫度傳感器優(yōu)化配置具有絕對優(yōu)勢。
圖4 兩種優(yōu)化配置的相對貢獻(xiàn)率Fig.4 The relative contribution rate of two kinds of optimal allocation
通過與逐步累積法進(jìn)行比較,發(fā)現(xiàn)遺傳算法進(jìn)行的溫度傳感器優(yōu)化配置明顯優(yōu)于逐步累積法。通過對不同位置傳感器的實測數(shù)據(jù)進(jìn)行優(yōu)化計算,改進(jìn)的遺傳算法可以對給定數(shù)量的傳感器進(jìn)行位置優(yōu)化。結(jié)果分析表明:該方法為傳感器數(shù)量與位置優(yōu)化提供了理論依據(jù),在傳感器優(yōu)化配置中具有很好的應(yīng)用價值。
[1] 毛欣,衣淑娟.大型智能控溫水稻集中浸種催芽設(shè)備的研制[J].黑龍江八一農(nóng)墾大學(xué)學(xué)報,2011,23(1):28-30.
[2] 張宏偉, 徐世杰, 黃文虎. 作動器/傳感器配置優(yōu)化的遺傳算法應(yīng)用[J]. 振動工程學(xué)報,1999,12(4): 529-534.
[3] 許強.模態(tài)測試中傳感器優(yōu)化布設(shè)的初步研究[D].重慶:重慶交通大學(xué),2007.
[4] 劉娟, 黃維平.傳感器優(yōu)化配置的修正逐步累積法[J].青島海洋大學(xué)學(xué)報,2003,33(3):476-482.
[5] 張連振,黃橋,王朝海.基于多目標(biāo)遺傳算法的傳感器優(yōu)化布點研究[J].工程力學(xué),2007,24(4):281.
[6] 梁艷春,馮大鵬,周春光.遺傳算法求解旅行商問題時的基因片段保序[J].系統(tǒng)工程理論與實踐,2000(4):7-12.
[7] 丁華福,劉曉璐,唐選新,等.面向旅行商問題的一種改進(jìn)遺傳算法[J].計算機(jī)技術(shù)與發(fā)展,2011,21(6):51-54.
Optimal Sensor Placement in Paddy Seeds Soaking Germination Device—Based on Genetic Algorithms
Li Chunsi, Yi Shujuan
(College of Engineering, Heilongjiang Bayi Agricultural University, Daqing 163319, China)
Using the improved genetic algorithm as a paddy seeds soaking germination device temperature sensor number and location of the optimization algorithm and optimize the configuration of sensor.Using sensor and data correlation characteristics of independence as a fitness function,using the measured data as a temperature sensor optimal allocation of processing data,finally got 10 sensor optimal allocation.And gradually accumulated configuration methods contrast analysis,show that genetic algorithm is used for sensor optimal allocation can get optimal results.
rice; soaking germination; genetic algorithms; optimal placement; temperature sensor
2016-07-06
李純思(1986-),男(蒙古族),黑龍江肇源人,碩士研究生,(E-mail) 553078938@qq.com。
衣淑娟(1965-),女,山東棲霞人,教授,博士生導(dǎo)師,(E-mail)ndyishujuani@163.com。
S24
A
1003-188X(2017)06-0027-06