遺傳加密算法及其應用

遺傳加密算法作為一種簡單通用、魯棒性強、適合并行的全局最優(yōu)加密算法,發(fā)展極為迅速,已引起了國內(nèi)外學者的高度重視。遺傳加密算法以其廣泛的適應性滲透到研究與工程的各個領域。

一、遺傳加密算法的定義

遺傳加密算法是一個迭代過程,在每次迭代中都保留一組候選解,按其解的優(yōu)劣進行排序,并按某種指標從中選出一些解,利用遺傳算子對其進行運算,產(chǎn)生新一代的一組候選解,重復此過程,直到滿足某種收斂指標為止。

二、遺傳加密算法的基本原理

遺傳加密算法是一種基于自然選擇和群體遺傳機理的搜索算法,它模擬了自然選擇和自然遺傳過程中發(fā)生的繁殖、雜交和突變現(xiàn)象。與傳統(tǒng)搜索算法不同,遺傳加密算法從一組隨機產(chǎn)生的初始解,稱為群體,開始搜索過程。

群體中的每個個體是問題的一個解,稱為“染色體”。這些“染色體”在后續(xù)迭代中不斷進化,稱為遺傳。遺傳算法主要通過交叉、變異、選擇運算實現(xiàn)。交叉或變異運算生成下一代“染色體”,稱為后代。“染色體”的好壞用適應度來衡量。根據(jù)適應度的大小從上一代和后代中選擇一定數(shù)量的個體,作為下一代“染色體”,再繼續(xù)進化,這一群新個體由于繼承了上一代的一些優(yōu)良性狀,因而在性能上要優(yōu)于上一代,這樣逐步朝著更優(yōu)解的方向進化。經(jīng)過若干代之后,算法收斂于最好的染色體,它很可能就是問題的最優(yōu)解或次優(yōu)解,它是一種迭代式加密算法。

三、遺傳加密算法的特點

遺傳加密算法利用了生物進化和遺傳的思想,所以它有許多與傳統(tǒng)優(yōu)化算法不同的特點:

1、遺傳加密算法不是直接作用在參變量集上,而是利用參變量集的某種編碼。

2、遺傳加密算法在求解空間中從多個點尋找問題解,而不像某些傳統(tǒng)方法從某一點尋找解。

3、遺傳加密算法直接應用目標函數(shù)的函數(shù)值信息(即適應度值),而非函數(shù)的導數(shù)或其它輔助信息。

4、遺傳加密算法引用了概率轉(zhuǎn)換規(guī)則,而不采用確定性的轉(zhuǎn)換規(guī)則指導搜索,因此,能搜索離散的、有噪音的多峰值復雜空間。

5、遺傳加密算法使用隨機操作,但并不意味著遺傳算法是簡單的隨機搜索,它具有一定的方向性,它使用隨機工具來指導搜索向著一個最優(yōu)解方向前進,它的方向性使得它的效率遠遠高于一般的隨機算法。

6、遺傳加密算法采用自然進化機制來表現(xiàn)復雜的現(xiàn)象,能夠快速可靠地解決非常困難的問題。

7、遺傳加密算法具有固有的并行性,具有并行計算的能力。

8、遺傳加密算法具有可擴展性,易于同別的技術(shù)混合。

四、遺傳加密算法的應用

遺傳加密算法的初期應用研究主要圍繞組合優(yōu)化問題求解,但近年來已迅速擴展到機器學習、設計規(guī)劃、神經(jīng)網(wǎng)絡優(yōu)化、自律分布控制和人工生命等眾多領域。此外,還在核反應控制和噴氣發(fā)動機設計等工程應用中進行了十分有意義的嘗試。下面是遺傳加密算法的一些主要應用領域。

1、遺傳加密算法在組合優(yōu)化中的應用

組合優(yōu)化問題是遺傳加密算法最基本也是最重要的應用領域。所謂組合優(yōu)化問題是指在離散的、有限的數(shù)學結(jié)構(gòu)上,尋找一個滿足給定約束條件并使其目標函數(shù)達到最大或最小的解。在日常生活中,特別是在工程設計中,有許多這樣的問題。最典型的是巡回旅行商問題和背包問題。

2、遺傳加密算法在生產(chǎn)調(diào)度問題中的應用

在很多情況下,生產(chǎn)調(diào)度問題建立起來的數(shù)學模型難以精確求解,即使經(jīng)過一些簡化之后可以進行求解,也會因簡化得太多而使得求解結(jié)果與實際相差甚遠。目前,在現(xiàn)實生產(chǎn)中,主要是靠一些經(jīng)驗來進行調(diào)度。現(xiàn)在遺傳加密算法已成為解決復雜調(diào)度問題的有效工具,在單件生產(chǎn)車間調(diào)度、流水線生產(chǎn)調(diào)度、任務分配等方面遺傳加密算法都得到了有效的應用。

3、遺傳加密算法在自動控制中的應用 

在自動控制領域中,有很多與優(yōu)化相關(guān)的問題需要求解。例如,用遺傳算法進行航空控制系統(tǒng)的優(yōu)化、設計空間交會控制器等都顯示出在這些領域中應用的可能性。

4、遺傳加密算法在圖象處理中的應用 

圖象處理是計算機視覺中的一個重要研究領域,如目前已在模式識別(包括漢字識別)、圖像恢復、圖像邊緣特征提取等方面得到了應用。

5、遺傳加密算法在機器學習領域中的應用 

基于GA的機器學習是當前GA應用研究的熱點,特別是分類器系統(tǒng),在很多領域中都得到了應用。Holland的分類器系統(tǒng)是基于遺傳加密算法機器學習的一個典型例子,GA部分的主要任務是產(chǎn)生新的分類器,如獲取規(guī)則集合以預測公司的利潤。Brooker等對分類器系統(tǒng)和GA進行了更加詳細的評述。

6、遺傳加密算法在數(shù)據(jù)挖掘中的應用 

數(shù)據(jù)挖掘是近幾年出現(xiàn)的數(shù)據(jù)庫技術(shù),它能夠從大型數(shù)據(jù)庫中提取隱含、未知、有潛力、有應用價值的知識和規(guī)則。許多數(shù)據(jù)挖掘問題可看成是搜索問題,數(shù)據(jù)庫可看作搜索空間,挖掘算法看作是搜索策略。因此,應用遺傳加密算法在數(shù)據(jù)庫中搜索,對隨機產(chǎn)生的一組規(guī)則進化,直到數(shù)據(jù)庫能被該組規(guī)則覆蓋,從而挖掘出隱含在數(shù)據(jù)庫中的規(guī)則。Sunil已成功地開發(fā)了一個基于遺傳加密算法的數(shù)據(jù)挖掘工具,利用該工具對兩個飛機失事數(shù)據(jù)庫進行了數(shù)據(jù)挖掘?qū)嶒?,結(jié)果表明遺傳加密算法是進行數(shù)據(jù)挖掘的有效方法之一。

從以上分析,我們可以得出:遺傳加密算法不是一種單純的優(yōu)化算法,而是一種以進化思想為基礎的全新的一般方法,是解決復雜問題的有力工具;遺傳加密算法應用日趨廣泛,其本身的發(fā)展也是不斷進化的過程,理論研究需要引入新的數(shù)學工具、吸收生物學的最新成果。

小知識之迭代算法

迭代算法是用計算機解決問題的一種基本方法。它利用計算機運算速度快、適合做重復性操作的特點,讓計算機對一組指令(或一定步驟)進行重復執(zhí)行,在每次執(zhí)行這組指令(或這些步驟)時,都從變量的原值推出它的一個新值。