一種人工免疫系統(tǒng)模型aiNet從Matlab向Java的轉(zhuǎn)換生成方法
【專利摘要】本發(fā)明提供的是一種人工免疫系統(tǒng)模型aiNet從Matlab向Java的轉(zhuǎn)換生成方法。MATLAB專門以矩陣的方式處理計(jì)算數(shù)據(jù),它把數(shù)值計(jì)算和可視化環(huán)境集成到一起,提供了大量的函數(shù)。在將以MATLAB實(shí)現(xiàn)的程序向JAVA轉(zhuǎn)化時(shí),解決的問題就是用JAVA語言實(shí)現(xiàn)各種矩陣的運(yùn)算,將MATLAB中的函數(shù)命令以JAVA語言的形式顯式地表達(dá)出來。
【專利說明】-種人工免疫系統(tǒng)模型a i Net從Matlab向Java的轉(zhuǎn)換生 成方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及的是一種人工免疫系統(tǒng)模型,特別涉及到一種aiNet從Matlab向Java 的轉(zhuǎn)換生成技術(shù)。
【背景技術(shù)】
[0002] 人工免疫系統(tǒng)是研究、借鑒、利用生物免疫系統(tǒng)(主要是人類免疫系統(tǒng))的各種原 理和機(jī)制而發(fā)展的各類信息處理技術(shù)、計(jì)算技術(shù)及其在工程和科學(xué)應(yīng)用中產(chǎn)生的各種智能 系統(tǒng)的統(tǒng)稱。AiNet是由de Castro提出的一種免疫網(wǎng)絡(luò)模型,用來研究標(biāo)志數(shù)據(jù)集合的聚 類和過濾問題,表明免疫系統(tǒng)具有強(qiáng)大的計(jì)算能力,可利用免疫概念發(fā)展強(qiáng)大的數(shù)據(jù)處理 計(jì)算工具。
[0003] 巴西 Campinas 大學(xué)的 Leandro Nunes De Castro 博士提出一種名為 aiNet 的免 疫網(wǎng)絡(luò)[4]。他研究了免疫系統(tǒng)的一些基本問題,忽略B細(xì)胞和抗體的區(qū)別。目的是研究未 標(biāo)志數(shù)據(jù)集合的聚類和過濾,可利用免疫概念發(fā)展強(qiáng)大的數(shù)據(jù)處理計(jì)算工具。該網(wǎng)絡(luò)具有 減少冗余、描述數(shù)據(jù)結(jié)構(gòu)、包括聚類形狀等特征。表明免疫系統(tǒng)具有強(qiáng)大的計(jì)算能力。
[0004] 從信息處理角度看,脊椎動(dòng)物免疫系統(tǒng)有許多對(duì)工程有用的機(jī)制。理論免疫學(xué)有 幾種相應(yīng)的理論,包括免疫網(wǎng)絡(luò)理論、克隆選擇以及親合度成熟原理。免疫網(wǎng)絡(luò)理論假設(shè)免 疫細(xì)胞活動(dòng)、記憶突現(xiàn)和自體細(xì)胞與外部入侵者之間的區(qū)分都是抗體和細(xì)胞之間形成的網(wǎng) 絡(luò)實(shí)現(xiàn)的??寺∵x擇原理提出免疫系統(tǒng)與病原體結(jié)合產(chǎn)生適應(yīng)免疫應(yīng)答的方式。親和力成 熟用于解釋免疫系統(tǒng)在識(shí)別和清除病原體任務(wù)中如何變得越來越好。這些理論、概念和思 想被用于開發(fā)一種人工免疫網(wǎng)絡(luò)模型,稱為aiNet。能夠模擬脊椎動(dòng)物免疫系統(tǒng)類似的機(jī)制 解決工程中的模式識(shí)別任務(wù)。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于提供一種用于人工免疫系統(tǒng)模型aiNet的Matlab程序轉(zhuǎn)換成 面向?qū)ο蟮?、以Java語言實(shí)現(xiàn)的程序,使模型得到更廣泛、高效地應(yīng)用。
[0006] 本發(fā)明的目的是這樣實(shí)現(xiàn)的:首先求記憶矩陣中各克隆的親和力,在MATLAB中 使用dist()命令實(shí)現(xiàn);其次使用了 triu〇命令和find()命令實(shí)現(xiàn)尋找親和力矩陣 Dl中在要求范圍內(nèi)的元素的坐標(biāo),再利用內(nèi)部函數(shù)ver_eq〇和extractO完成提取符合 標(biāo)準(zhǔn)的元素的工作。
[0007] 一種人工免疫系統(tǒng)模型aiNet從Matlab向Java的轉(zhuǎn)換生成方法,以MATLAB實(shí)現(xiàn) 的aiNet算法用M語言以一組函數(shù)文件的形式實(shí)現(xiàn),在JAVA代碼中,這些函數(shù)文件將以類 的形式出現(xiàn),用類中的方法具體實(shí)現(xiàn)aiNet算法;運(yùn)行MATLAB實(shí)現(xiàn)的aiNet算法,其程序是 從tutorial函數(shù)開始,倉丨j建tutorial類,其中包含main ()方法,JAVA代碼從main ()方 法處開始執(zhí)行;根據(jù)運(yùn)行MATLAB代碼,在JAVA中實(shí)現(xiàn)了數(shù)據(jù)的圖形化。
[0008] 所述在MATLAB中通過調(diào)用命令完成復(fù)雜的矩陣運(yùn)算,在JAVA代碼中不能直接調(diào) 用這些命令,以JAVA代碼顯式的表達(dá)MATLAB命令所實(shí)現(xiàn)的算法;在JAVA中涉及的數(shù)據(jù)結(jié) 構(gòu)是數(shù)組,運(yùn)用循環(huán)結(jié)構(gòu)處理數(shù)組,從而達(dá)到效果;在aiNet算法中反復(fù)出現(xiàn)的求向量間距 離的代碼,在MATLAB中用dist ()命令以實(shí)現(xiàn)。
[0009] 所述的JAVA中,應(yīng)用JAVA的繪圖和繪畫方法來完成圖形制作,在JAVA中繪制圖 形使用庫類和方法,繪制表示數(shù)學(xué)方程的圖形類,在aiNet算法中實(shí)現(xiàn)帶有坐標(biāo)系的圖形。 [0010] 該技術(shù)方案的優(yōu)點(diǎn)在于: 1、Java是與平臺(tái)無關(guān)、分布式語言,所以將程序用Java實(shí)現(xiàn)有著更廣泛的應(yīng)用,更高 的效率;2、采用Java的人工免疫系統(tǒng)模型可以一次編寫,移植性好,便于計(jì)算機(jī)網(wǎng)絡(luò)上運(yùn) 行;3、模型的轉(zhuǎn)換提供一種簡(jiǎn)單的拓展方法、減輕了編程的工作量,提高了優(yōu)越性。
【專利附圖】
【附圖說明】
[0011] 圖1為aiNet產(chǎn)生的網(wǎng)絡(luò)結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0012] 下面結(jié)合附圖舉例對(duì)本發(fā)明做更詳細(xì)地描述: 實(shí)施例1 一種人工免疫系統(tǒng)模型aiNet從Matlab向Java的轉(zhuǎn)換生成方法,以ATLAB實(shí)現(xiàn)的 aiNet算法用M語言以一組函數(shù)文件的形式實(shí)現(xiàn),在JAVA代碼中,這些函數(shù)文件將以類的 形式出現(xiàn),用類中的方法具體實(shí)現(xiàn)aiNet算法;運(yùn)行MATLAB實(shí)現(xiàn)的aiNet算法,其程序是從 tutorial函數(shù)開始,倉丨j建tutorial類,其中包含main ()方法,JAVA代碼從main ()方法 處開始執(zhí)行;根據(jù)運(yùn)行MATLAB代碼,在JAVA中實(shí)現(xiàn)了數(shù)據(jù)的圖形化。
[0013] 所述在MATLAB中通過調(diào)用命令完成復(fù)雜的矩陣運(yùn)算,在JAVA代碼中不能直接調(diào) 用這些命令,以JAVA代碼顯式的表達(dá)MATLAB命令所實(shí)現(xiàn)的算法;在JAVA中涉及的數(shù)據(jù)結(jié) 構(gòu)是數(shù)組,運(yùn)用循環(huán)結(jié)構(gòu)處理數(shù)組,從而達(dá)到效果;在aiNet算法中反復(fù)出現(xiàn)的求向量間距 離的代碼,在MATLAB中用dist ()命令以實(shí)現(xiàn)。
[0014] 所述的JAVA中,應(yīng)用JAVA的繪圖和繪畫方法來完成圖形制作,在JAVA中繪制圖 形使用庫類和方法,繪制表示數(shù)學(xué)方程的圖形類,在aiNet算法中實(shí)現(xiàn)帶有坐標(biāo)系的圖形。
[0015] 在JAVA中定義private void suppress ()方法來實(shí)現(xiàn)克隆抑制。在程序主體中 編寫代碼實(shí)現(xiàn)MATLAB命令。ifc (M1M')的結(jié)果相當(dāng)于奴矩陣和其轉(zhuǎn)秩矩陣乘積后各元 素分別開方得到的矩陣。結(jié)果矩陣中第X行y列的元素為M矩陣中第X行和第y行乘積 的平方根。Af的行數(shù)為》,列數(shù)為》,為存放結(jié)果的數(shù)組,為行列。在程序主體中 接著distO命令的是sortO命令,這個(gè)命令的用途是在指定維數(shù)方向上實(shí)現(xiàn)升序排列元 素,同時(shí)返回一個(gè)記載下標(biāo)所引的數(shù)組。為此設(shè)計(jì)的JAVA程序中將在非指定維數(shù)上先執(zhí)行 循環(huán)操作,其中嵌套著在相應(yīng)維數(shù)上的循環(huán),在內(nèi)層循環(huán)體內(nèi)執(zhí)行相應(yīng)的升序排列的任務(wù), 并生成下標(biāo)所引數(shù)組。為此,定義一個(gè)過渡變量會(huì),用來輔助實(shí)現(xiàn)數(shù)組元素交換。數(shù)組U行 數(shù)為m,列數(shù)為η,過渡變量為cary,下標(biāo)索引數(shù)組I,維數(shù)與?相同。
[0016] 實(shí)施例2 結(jié)合圖1,本發(fā)明的處理流程如下:aiNet是進(jìn)化的,它用進(jìn)化策略控制網(wǎng)絡(luò)動(dòng)態(tài)和可 塑性;它也是連接的,需要定義一個(gè)連接強(qiáng)度矩陣度量網(wǎng)絡(luò)細(xì)胞之間的親和力;網(wǎng)絡(luò)中聚 類負(fù)責(zé)映射數(shù)據(jù)集合中的聚類到網(wǎng)絡(luò)聚類,圖I (a)所示;圖I (b)所示為一個(gè)由aiNet產(chǎn) 生的網(wǎng)絡(luò)結(jié)構(gòu);圖中給出細(xì)胞表示和連接強(qiáng)度,虛線表示為了檢測(cè)聚類和定義最終的網(wǎng)絡(luò) 結(jié)構(gòu),連接應(yīng)被剪除。
[0017] 實(shí)施例3 aiNet算法描述如下: 1 對(duì)每一個(gè)抗原模式= do : 1. 1確定未和力戍一 =^1,對(duì)所有= Dfj-HIAbi-Agj-Ii 二 1凡 1.2選擇由"個(gè)最高親和力抗體組成的子集^bJ,,
[0018] 1.3 Β個(gè)選擇的抗體將擴(kuò)增,與抗原親和力/y成比例,產(chǎn)生一個(gè)克隆集合C。親 和力越高,B個(gè)被選擇的抗體的克隆規(guī)模越大。
[0019] 1.4集合C提交給親和力成熟過程,產(chǎn)生一個(gè)變異集合C'其中來自if的每一 個(gè)抗體k將經(jīng)歷一個(gè)速率% (與父代抗體的抗原親和力成反比):親和力越高,變異率越 低。< =Q IqGig·廠Ct:fcat 正比于IZZij-, k=l,…,MJ = UJV。
[0020] 1. 5確定親和力=1/馬』·,在之間和所有C*的元素之間。 \=1丨<為-丨丨夕二1^。
[0021] 1. 6從Cf。重新選擇具有最高的抗體5%,并放入克隆記憶矩陣。
[0022] L 7細(xì)胞凋亡:從親和力的^^清除所有記憶克隆。
[0023] 1.8確定記憶克隆之間的未和力, b II=VH
[0024] I. 9克隆抑制:清除A的記憶克?。粚?duì): 用結(jié)果克 隆記憶連接整體抗體記憶矩陣。
[0025] 2確定來自的所有記憶抗體之間的親和力:Jii _丨LVI1Jfc。
[0026] 3網(wǎng)絡(luò)抑制:清除所有化< %的抗體。
[0027] 4建立整個(gè)抗體矩陣也[Aw :3?]。
【權(quán)利要求】
1. 一種人工免疫系統(tǒng)模型aiNet從Matl油向化va的轉(zhuǎn)換生成方法,其特征在于: MTLAB實(shí)現(xiàn)的aiNet算法用M語言W-組函數(shù)文件的形式實(shí)現(xiàn),在JAVA代碼中,該些函數(shù) 文件將W類的形式出現(xiàn),用類中的方法具體實(shí)現(xiàn)aiNet算法;運(yùn)行MTLAB實(shí)現(xiàn)的aiNet算 法,其程序是從化torial函數(shù)開始,包j建化torial類,其中包含main 〇方法,JAVA代碼 從main 〇方法處開始執(zhí)行;根據(jù)運(yùn)行MTLAB代碼,在JAVA中實(shí)現(xiàn)了數(shù)據(jù)的圖形化。
2. 根據(jù)權(quán)利要求1所述的人工免疫系統(tǒng)模型aiNet從Matlab向化va的轉(zhuǎn)換生成方 法,其特征在于;所述在MTLAB中通過調(diào)用命令完成復(fù)雜的矩陣運(yùn)算,在JAVA代碼中不能 直接調(diào)用該些命令,W JAVA代碼顯式的表達(dá)MTLAB命令所實(shí)現(xiàn)的算法;在JAVA中涉及的 數(shù)據(jù)結(jié)構(gòu)是數(shù)組,運(yùn)用循環(huán)結(jié)構(gòu)處理數(shù)組,從而達(dá)到效果;在aiNet算法中反復(fù)出現(xiàn)的求向 量間距離的代碼,在MTLAB中用dist 〇命令W實(shí)現(xiàn)。
3. 根據(jù)權(quán)利要求1所述的人工免疫系統(tǒng)模型aiNet從Matlab向化va的轉(zhuǎn)換生成方 法,其特征在于;所述的JAVA中,應(yīng)用JAVA的繪圖和繪畫方法來完成圖形制作,在JAVA中 繪制圖形使用庫類和方法,繪制表示數(shù)學(xué)方程的圖形類,在aiNet算法中實(shí)現(xiàn)帶有坐標(biāo)系 的圖形。
【文檔編號(hào)】G06F9/44GK104462871SQ201410691610
【公開日】2015年3月25日 申請(qǐng)日期:2014年11月27日 優(yōu)先權(quán)日:2014年11月27日
【發(fā)明者】王永剛, 胡晶 申請(qǐng)人:哈爾濱金都太陽能科技有限公司