專利名稱:一種基于MapReduce的射線跟蹤加速算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)并行計(jì)算與無線電波傳播領(lǐng)域,尤其涉及射線跟蹤加速和云計(jì)算中的MapReduce并行編程模式。
背景技術(shù):
射線跟蹤方法能根據(jù)微小區(qū)的環(huán)境特征,給出微小區(qū)電波預(yù)測(cè)的確定性模型,但是這種方法對(duì)復(fù)雜的建筑物環(huán)境或建筑物環(huán)境的三維模型進(jìn)行預(yù)測(cè)時(shí)耗時(shí)巨大,因此,射線跟蹤加速算法成為人們關(guān)注的核心問題。近年來,國內(nèi)外學(xué)者提出很多射線跟蹤加速算法。其中空間分區(qū)法雖然能很好的解決反射現(xiàn)象,但是對(duì)于繞射現(xiàn)象算法效率的提高不明顯。二叉樹方法僅在進(jìn)行跟蹤求場(chǎng)強(qiáng)時(shí)縮短了計(jì)算時(shí)間,對(duì)于建立路徑樹仍然費(fèi)時(shí)。并行處理法在計(jì)算精度相同的情況下能大大縮短計(jì)算時(shí)間,并且能夠利用網(wǎng)絡(luò)中空閑的計(jì)算機(jī) 資源。MapReduce是Google提出的一種并行編程模式,MapReduce把對(duì)數(shù)據(jù)集的大規(guī)模操作,分發(fā)給一個(gè)主節(jié)點(diǎn)管理下的各分節(jié)點(diǎn)共同完成。一個(gè)Map函數(shù)對(duì)一部分原始數(shù)據(jù)進(jìn)行指定的操作,每個(gè)Map操作都針對(duì)不同的原始數(shù)據(jù),因此Map與Map之間相互獨(dú)立,這就使得它們可以充分并行化。一個(gè)Reduce操作就是對(duì)每個(gè)Map所產(chǎn)生的結(jié)果進(jìn)行合并操作,所有Reduce產(chǎn)生的最終結(jié)果經(jīng)過簡單連接就形成了完整的結(jié)果集,因此Reduce也可以在并行環(huán)境下執(zhí)行。而射線跟蹤過程中所跟蹤的射線量巨大,計(jì)算時(shí)間長,但在此過程中,各個(gè)射線相互獨(dú)立,具有自然的并行性,因此,在進(jìn)行射線跟蹤時(shí),可以將射線跟蹤與MapReduce結(jié)合,提聞射線跟蹤的運(yùn)算效率。因此急需一種提高射線跟蹤運(yùn)算效率的加速算法。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明所要解決的技術(shù)問題是提供一種一種提高射線跟蹤運(yùn)算效率的加速算法。本發(fā)明的目的是這樣實(shí)現(xiàn)的本發(fā)明提供的一種基于MapReduce的射線跟蹤加速算法,該方法基于MapReduce框架,包括以下步驟SI :確定源點(diǎn)和場(chǎng)點(diǎn),從各源點(diǎn)發(fā)射的射線經(jīng)過建筑物的反射后到達(dá)對(duì)應(yīng)的場(chǎng)占.S2 :判斷從源點(diǎn)發(fā)射的射線是否為有效射線;如果否,則該射線到達(dá)場(chǎng)點(diǎn)的三維坐標(biāo)設(shè)為源點(diǎn)坐標(biāo),場(chǎng)點(diǎn)的特征值記為0 ;S3:如果是,則分別記錄射線到達(dá)各場(chǎng)點(diǎn)的三維坐標(biāo)與該射線到達(dá)此場(chǎng)點(diǎn)的特征值;S4 :建立Map函數(shù)來處理特征值,將特征值中屬于同一三維坐標(biāo)的場(chǎng)點(diǎn)歸為一類;
S5 :建立Reduce函數(shù)來對(duì)歸類后的特征值進(jìn)行處理,以Map函數(shù)返回的三維坐標(biāo)值為關(guān)鍵字,對(duì)關(guān)鍵字相同的Map函數(shù)處理的場(chǎng)點(diǎn)特征值這一結(jié)果進(jìn)行相應(yīng)的迭代運(yùn)算,得到該場(chǎng)點(diǎn)總特征值。進(jìn)一步,所述特征值包括場(chǎng)點(diǎn)的場(chǎng)強(qiáng)、到達(dá)角、延遲和極化四個(gè)參數(shù)。進(jìn)一步,所述判斷從源點(diǎn)發(fā)射的射線是否為有效射線,具體步驟如下從每個(gè)源點(diǎn)發(fā)出的射線,在射線傳播的過程中,經(jīng)過反射、折射或繞射到達(dá)場(chǎng)點(diǎn)的射線為有效射線;從每個(gè)源點(diǎn)發(fā)出的射線,在射線傳播的過程中,能量衰減到規(guī)定閥值,確定該射線為無效射線。進(jìn)一步,所述從源點(diǎn)發(fā)射的不同的射線采用不同的Map函數(shù)進(jìn)行跟蹤,每個(gè)Map函數(shù)包括場(chǎng)點(diǎn)三維坐標(biāo)和場(chǎng)點(diǎn)特征值兩個(gè)參數(shù);對(duì)于能夠到達(dá)同一場(chǎng)點(diǎn)的若干條射線,與之 相對(duì)應(yīng)的Map函數(shù)返回的場(chǎng)點(diǎn)的三維坐標(biāo)值是相同的。進(jìn)一步,所述同一場(chǎng)點(diǎn)歸為一類是根據(jù)Map函數(shù)中場(chǎng)點(diǎn)三維坐標(biāo)值是否相同來歸為一類;如果相同,則歸為一類;如果不相同,則單獨(dú)一類。進(jìn)一步,所述每個(gè)Map函數(shù)分配一條射線,根據(jù)需要確定源點(diǎn)角度,從而進(jìn)一步確定射線數(shù)目,根據(jù)射線數(shù)目,所述每個(gè)Map函數(shù)處理自身的射線。進(jìn)一步,所述各Map函數(shù)相互獨(dú)立對(duì)原始數(shù)據(jù)進(jìn)行并行操作。進(jìn)一步,所述Map函數(shù),用于跟蹤從源點(diǎn)發(fā)射的不同的射線,每個(gè)Map函數(shù)包括場(chǎng)點(diǎn)三維坐標(biāo)和場(chǎng)點(diǎn)特征值兩個(gè)參數(shù);對(duì)于能夠到達(dá)同一場(chǎng)點(diǎn)的若干條射線,與之相對(duì)應(yīng)的Map函數(shù)返回的場(chǎng)點(diǎn)的三維坐標(biāo)值是相同的;所述Reduce函數(shù),以Map函數(shù)返回的三維坐標(biāo)值為關(guān)鍵字,對(duì)關(guān)鍵字相同的Map函數(shù)處理的場(chǎng)點(diǎn)特征值這一結(jié)果進(jìn)行相應(yīng)的迭代運(yùn)算,得到該場(chǎng)點(diǎn)的總特征值。本發(fā)明的優(yōu)點(diǎn)在于本發(fā)明采用一種基于MapReduce的射線跟蹤加速算法MapReduce是一種能處理海量數(shù)據(jù)的并行編程模式,用于大規(guī)模數(shù)據(jù)集的并行運(yùn)算。而射線跟蹤過程中所跟蹤的射線量巨大,計(jì)算時(shí)間長,但在此過程中,各個(gè)射線相互獨(dú)立,具有自然的并行性,因此,在進(jìn)行射線跟蹤時(shí),將射線跟蹤與MapReduce結(jié)合,提高射線跟蹤的運(yùn)算效率。本發(fā)明的其它優(yōu)點(diǎn)、目標(biāo)和特征在某種程度上將在隨后的說明書中進(jìn)行闡述,并且在某種程度上,基于對(duì)下文的考察研究對(duì)本領(lǐng)域技術(shù)人員而言將是顯而易見的,或者可以從本發(fā)明的實(shí)踐中得到教導(dǎo)。本發(fā)明的目標(biāo)和其它優(yōu)點(diǎn)可以通過下面的說明書,權(quán)利要求書,以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述,其中圖I為簡單小區(qū)環(huán)境建筑模型示意圖;圖2為利用MapReduce進(jìn)彳丁射線跟蹤的流程圖。
具體實(shí)施例方式以下將結(jié)合附圖,對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)的描述;應(yīng)當(dāng)理解,優(yōu)選實(shí)施例僅為了說明本發(fā)明,而不是為了限制本發(fā)明的保護(hù)范圍。實(shí)施例I圖I為簡單小區(qū)環(huán)境建筑I旲型不意圖,圖2為利用MapReduce進(jìn)彳丁射線跟蹤的流程圖,如圖所示本發(fā)明提供的一種基于MapReduce的射線跟蹤加速算法,包括以下步驟
SI :確定源點(diǎn)和場(chǎng)點(diǎn),從各源點(diǎn)發(fā)射的射線經(jīng)過建筑物的反射后到達(dá)對(duì)應(yīng)的場(chǎng)占.S2 :判斷從源點(diǎn)發(fā)射的射線是否為有效射線;如果否,則該射線到達(dá)場(chǎng)點(diǎn)的三維坐標(biāo)設(shè)為源點(diǎn)坐標(biāo),場(chǎng)點(diǎn)的特征值記為0 ;所述判斷從源點(diǎn)發(fā)射的射線是否為有效射線,具體步驟如下從每個(gè)源點(diǎn)發(fā)出的射線,在射線傳播的過程中,經(jīng)過反射、折射或繞射到達(dá)場(chǎng)點(diǎn)的射線為有效射線;從每個(gè)源點(diǎn)發(fā)出的射線,在射線傳播的過程中,能量衰減到規(guī)定閥值,對(duì)場(chǎng)點(diǎn)的總特征值貢獻(xiàn)不大,可以忽略的射線為無效射線。S3:如果是,則分別記錄射線到達(dá)各場(chǎng)點(diǎn)的三維坐標(biāo)與該射線到達(dá)此場(chǎng)點(diǎn)的特征值;所述特征值包括場(chǎng)點(diǎn)的場(chǎng)強(qiáng)、到達(dá)角、延遲和極化四個(gè)參數(shù)。S4 :建立Map函數(shù)來處理特征值,將特征值中屬于同一三維坐標(biāo)的場(chǎng)點(diǎn)歸為一類;S5 :建立Reduce函數(shù)來對(duì)歸類后的特征值進(jìn)行處理,以Map函數(shù)返回的三維坐標(biāo)值為關(guān)鍵字,對(duì)關(guān)鍵字相同的Map函數(shù)處理的場(chǎng)點(diǎn)特征值這一結(jié)果進(jìn)行相應(yīng)的迭代運(yùn)算,得到該場(chǎng)點(diǎn)總特征值。Map (映射)函數(shù),用來把一組鍵值對(duì)映射成一組新的鍵值對(duì),指定并發(fā)的Reduce(化簡)函數(shù),用來保證所有映射的鍵值對(duì)中的每一個(gè)共享相同的鍵組。所述從源點(diǎn)發(fā)射的不同的射線采用不同的Map函數(shù)進(jìn)行跟蹤,每個(gè)Map函數(shù)包括場(chǎng)點(diǎn)三維坐標(biāo)和場(chǎng)點(diǎn)特征值兩個(gè)參數(shù);對(duì)于能夠到達(dá)同一場(chǎng)點(diǎn)的若干條射線,與之相對(duì)應(yīng)的Map函數(shù)返回的場(chǎng)點(diǎn)的三維坐標(biāo)值是相同的。所述同一場(chǎng)點(diǎn)歸為一類是根據(jù)Map函數(shù)中場(chǎng)點(diǎn)三維坐標(biāo)值是否相同來歸為一類;如果相同,則歸為一類;如果不相同,則單獨(dú)一類。所述每個(gè)Map函數(shù)分配一條射線,根據(jù)需要確定源點(diǎn)角度,從而進(jìn)一步確定射線數(shù)目,所述每個(gè)Map函數(shù)處理自身的射線。所述各Map函數(shù)相互獨(dú)立對(duì)原始數(shù)據(jù)進(jìn)行并行操作。所述Map函數(shù),用于跟蹤從源點(diǎn)發(fā)射的不同的射線,每個(gè)Map函數(shù)包括場(chǎng)點(diǎn)三維坐標(biāo)和場(chǎng)點(diǎn)特征值兩個(gè)參數(shù);對(duì)于能夠到達(dá)同一場(chǎng)點(diǎn)的若干條射線,與之相對(duì)應(yīng)的Map函數(shù)返回的場(chǎng)點(diǎn)的三維坐標(biāo)值是相同的;所述Reduce函數(shù),用于以Map函數(shù)返回的三維坐標(biāo)值為關(guān)鍵字,對(duì)關(guān)鍵字相同的Map函數(shù)處理的場(chǎng)點(diǎn)特征值這一結(jié)果進(jìn)行相應(yīng)的迭代運(yùn)算,得到該場(chǎng)點(diǎn)的總特征值;實(shí)施例2如圖I所示為一個(gè)簡單的小區(qū)環(huán)境建筑模型,在此環(huán)境中,假設(shè)有5個(gè)源點(diǎn)(sl,s2, s3, s4, s5)和3個(gè)場(chǎng)點(diǎn)(tl,t2, t3)。每個(gè)源點(diǎn)發(fā)射一條射線,那么總共有5條射線。其中源點(diǎn)sl,s2發(fā)出的射線經(jīng)過建筑物的反射后能夠順利的到達(dá)場(chǎng)點(diǎn)tl,t2。s3和s4發(fā)出的射線經(jīng)過反射后到達(dá)同一場(chǎng)點(diǎn)t3,因此這四條射線是有效射線,源點(diǎn)s5發(fā)出的射線沒有到達(dá)場(chǎng)點(diǎn),因此是無效射線。
在利用MapReduce的思想進(jìn)行射線跟蹤時(shí),首先要編寫兩個(gè)主要函數(shù)Map: (in_key, in_value)-> {(keyj, value j) |j=l...k},其中 in_key 代表射線到達(dá)某一場(chǎng)點(diǎn)后,這一場(chǎng)點(diǎn)的三維坐標(biāo);in_value代表射線到達(dá)某一場(chǎng)點(diǎn)后,射線在此場(chǎng)點(diǎn)的特征值。Reduce: (key, [valuel, · · · valuem])-> (key, f inal_value),將 Map 函數(shù)最后處理結(jié)果中關(guān)鍵字相同(到達(dá)同一場(chǎng)點(diǎn))的歸為一類,并對(duì)Map函數(shù)得出的特征值進(jìn)行處理,得到此場(chǎng)點(diǎn)最后總的特征值。如圖2所示,主控程序?yàn)槊總€(gè)Map函數(shù)分配一條射線,總共需要5個(gè)Map函數(shù)處理這些射線。當(dāng)一條射線到達(dá)某場(chǎng)點(diǎn)后,此條射線即為有效射線,從圖I可以看出,源點(diǎn)Si,s2, s3, s4發(fā)出的射線經(jīng)過建筑物反射后到達(dá)了場(chǎng)點(diǎn),即為有效射線,那么與之相對(duì)應(yīng)的Map函數(shù)就記錄下來到達(dá)場(chǎng)點(diǎn)的三維坐標(biāo)in_key和它們?cè)诖藞?chǎng)點(diǎn)的特征值in_value ;對(duì) 于那些沒有到達(dá)場(chǎng)點(diǎn)但能量衰減到可以忽略的射線,即源點(diǎn)s5發(fā)出的射線,相應(yīng)的Map函數(shù)的處理結(jié)果就可以忽略。當(dāng)所有的Map函數(shù)處理完后,主控程序模塊再對(duì)所有Map函數(shù)處理結(jié)果按照關(guān)鍵字進(jìn)行歸類,關(guān)鍵字相同的Map函數(shù),主控程序會(huì)歸為一類,不相同的單獨(dú)一類,歸類后交由Reduce函數(shù)處理,一個(gè)Reduce函數(shù)的處理結(jié)果是一個(gè)場(chǎng)點(diǎn)的總的特征值。在圖I中,Si到達(dá)場(chǎng)點(diǎn)tl,它對(duì)應(yīng)一個(gè)Reduce函數(shù),s2到達(dá)場(chǎng)點(diǎn)t2,對(duì)應(yīng)一個(gè)Reduce函數(shù),s3,s4由于到達(dá)同一場(chǎng)點(diǎn)t3,經(jīng)過Map函數(shù)處理后,關(guān)鍵字相同,因此它們對(duì)應(yīng)同一個(gè)Reduce函數(shù)。經(jīng)過這些Reduce函數(shù)處理后,就可以得出場(chǎng)點(diǎn)tl, t2, t3的特征值。本發(fā)明針對(duì)射線跟蹤方法自然的并行性,結(jié)合MapReduce的并行編程模式來進(jìn)行射線跟蹤的加速算法,由于在密集復(fù)雜的建筑物環(huán)境中,射線經(jīng)過反射、折射、繞射后數(shù)量龐大,而MapReduce又是針對(duì)海量數(shù)據(jù)的并行運(yùn)算思想,因此對(duì)于復(fù)雜環(huán)境的射線跟蹤,此種方法是十分高效的。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并不用于限制本發(fā)明,顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種基于MapReduce的射線跟蹤加速算法,其特征在于包括以下步驟 51:確定源點(diǎn)和場(chǎng)點(diǎn),從各源點(diǎn)發(fā)射的射線經(jīng)過建筑物的反射后到達(dá)對(duì)應(yīng)的場(chǎng)點(diǎn); 52:判斷從源點(diǎn)發(fā)射的射線是否為有效射線;如果否,則該射線到達(dá)場(chǎng)點(diǎn)的三維坐標(biāo)設(shè)為源點(diǎn)坐標(biāo),場(chǎng)點(diǎn)的特征值記為O ; 53:如果是,則分別記錄射線到達(dá)各場(chǎng)點(diǎn)的三維坐標(biāo)與該射線到達(dá)此場(chǎng)點(diǎn)的特征值; 54:建立Map函數(shù)來處理特征值,將特征值中屬于同一三維坐標(biāo)的場(chǎng)點(diǎn)歸為一類; 55:建立Reduce函數(shù)來對(duì)歸類后的特征值進(jìn)行處理,以Map函數(shù)返回的三維坐標(biāo)值為關(guān)鍵字,對(duì)關(guān)鍵字相同的Map函數(shù)處理的場(chǎng)點(diǎn)特征值這一結(jié)果進(jìn)行相應(yīng)的迭代運(yùn)算,得到該場(chǎng)點(diǎn)總特征值。
2.根據(jù)權(quán)利要求I所述的基于MapReduce的射線跟蹤加速算法,其特征在于所述特征值包括場(chǎng)點(diǎn)的場(chǎng)強(qiáng)、到達(dá)角、延遲和極化四個(gè)參數(shù)。
3.根據(jù)權(quán)利要求2所述的基于MapReduce的射線跟蹤加速算法,其特征在于所述判斷從源點(diǎn)發(fā)射的射線是否為有效射線, 具體步驟如下從每個(gè)源點(diǎn)發(fā)出的射線,在射線傳播的過程中,經(jīng)過反射、折射或繞射到達(dá)場(chǎng)點(diǎn)的射線為有效射線;從每個(gè)源點(diǎn)發(fā)出的射線,在射線傳播的過程中,能量衰減到規(guī)定閥值,確定該射線為無效射線。
4.根據(jù)權(quán)利要求3所述的基于MapReduce的射線跟蹤加速算法,其特征在于所述從源點(diǎn)發(fā)射的不同的射線采用不同的Map函數(shù)進(jìn)行跟蹤,每個(gè)Map函數(shù)包括場(chǎng)點(diǎn)三維坐標(biāo)和場(chǎng)點(diǎn)特征值兩個(gè)參數(shù);對(duì)于能夠到達(dá)同一場(chǎng)點(diǎn)的若干條射線,與之相對(duì)應(yīng)的Map函數(shù)返回的場(chǎng)點(diǎn)的三維坐標(biāo)值是相同的。
5.根據(jù)權(quán)利要求4所述的基于MapReduce的射線跟蹤加速算法,其特征在于所述同一場(chǎng)點(diǎn)歸為一類是根據(jù)Map函數(shù)中場(chǎng)點(diǎn)三維坐標(biāo)值是否相同來歸為一類;如果相同,則歸為一類;如果不相同,則單獨(dú)一類。
6.根據(jù)權(quán)利要求5所述的基于MapReduce的射線跟蹤加速算法,其特征在于所述每個(gè)Map函數(shù)分配一條射線,根據(jù)需要確定源點(diǎn)角度,從而進(jìn)一步確定射線數(shù)目,根據(jù)射線數(shù)目,所述每個(gè)Map函數(shù)處理自身的射線。
7.根據(jù)權(quán)利要求6所述的基于MapReduce的射線跟蹤加速算法,其特征在于所述各Map函數(shù)相互獨(dú)立對(duì)原始數(shù)據(jù)進(jìn)行并行操作。
8.根據(jù)權(quán)利要求7所述的基于MapReduce的射線跟蹤加速算法,其特征在于 所述Map函數(shù),用于跟蹤從源點(diǎn)發(fā)射的不同的射線,每個(gè)Map函數(shù)包括場(chǎng)點(diǎn)三維坐標(biāo)和場(chǎng)點(diǎn)特征值兩個(gè)參數(shù);對(duì)于能夠到達(dá)同一場(chǎng)點(diǎn)的若干條射線,與之相對(duì)應(yīng)的Map函數(shù)返回的場(chǎng)點(diǎn)的三維坐標(biāo)值是相同的; 所述Reduce函數(shù),以Map函數(shù)返回的三維坐標(biāo)值為關(guān)鍵字,對(duì)關(guān)鍵字相同的Map函數(shù)處理的場(chǎng)點(diǎn)特征值進(jìn)行相應(yīng)的迭代運(yùn)算,得到該場(chǎng)點(diǎn)的總特征值。
全文摘要
本發(fā)明公開了一種基于MapReduce的射線跟蹤加速算法。首先確定源點(diǎn)和場(chǎng)點(diǎn),從各源點(diǎn)發(fā)射的射線經(jīng)過建筑物的反射后到達(dá)對(duì)應(yīng)的場(chǎng)點(diǎn);然后判斷從源點(diǎn)發(fā)射的射線是否為有效射線;如果是,則分別記錄射線到達(dá)各場(chǎng)點(diǎn)的三維坐標(biāo)與該射線到達(dá)此場(chǎng)點(diǎn)的特征值;最后建立Map函數(shù)來處理特征值,得到特征值的場(chǎng)強(qiáng)、到達(dá)角、延遲和極化四個(gè)參數(shù)。本發(fā)明采用基于MapReduce的射線跟蹤加速算法用于大規(guī)模數(shù)據(jù)集的并行運(yùn)算。而射線跟蹤過程中所跟蹤的射線量巨大,計(jì)算時(shí)間長,各個(gè)射線相互獨(dú)立,具有自然的并行性,因此,在進(jìn)行射線跟蹤時(shí),將射線跟蹤與MapReduce結(jié)合,射線跟蹤的運(yùn)算效率提高。
文檔編號(hào)G06F9/38GK102722653SQ20121017793
公開日2012年10月10日 申請(qǐng)日期2012年5月31日 優(yōu)先權(quán)日2012年5月31日
發(fā)明者楊愛霞, 段莉丹, 王丹丹, 王元輝, 袁正午 申請(qǐng)人:重慶郵電大學(xué)