當前位置:首頁 » 操作系統 » 浮點數編碼的遺傳演算法

浮點數編碼的遺傳演算法

發布時間: 2022-07-05 06:08:16

⑴ 遺傳演算法的編碼方法有幾種

常用的編碼介紹
1、二進制編碼:
(1)定義:二進制編碼方法是使用二值符號集{0,1},它所構成的個體基因型是一個二進制編碼符號串。二進制編碼符號串的長度與問題所要求的求解精度有關。
(2)舉例:0≤x≤1023,精度為1,m表示二進制編碼的長度。則有建議性說法:使
2m-1≤1000(跟精度有關)≤2m-1。取m=10
則X:0010101111就可以表示一個個體,它所對應的問題空間的值是x=175。
(3)優缺點
優點:符合最小字元集原則,便於用模式定理分析;
缺點:連續函數離散化時的映射誤差。
2、格雷碼編碼
(1)定義:格雷碼編碼是其連續的兩個整數所對應的編碼之間只有一個碼位是不同的,其餘碼位完全相同。它是二進制編碼方法的一種變形。
十進制數0—15之間的二進制碼和相應的格雷碼分別編碼如下。
二進制編碼為:0000,0001,0010,001
1,0100。0101,0110,0111,
1000,1001,1010,1011,1100,1101,1110,1111;
格雷碼編碼為:0000,0001,0011,0010,0110,0111,0101,0100,
1100,1101,1111,1110,1010,1011,1001,1000。
(2)舉例:對於區間[0。1023]中兩個鄰近的整數X1=175和X2=176,若用長度為10位的二進制編碼,可表示為X11:0010101111和X12
0010110000,而使用同樣長度的格雷碼,它們可分別表示為X21:0010101111和X22:0010101000。
(3)優點:增強了遺傳演算法的局部搜索能力,便於連續函數的局部控制項搜索。
3、浮點數(實數)編碼
(1)定義:浮點數編碼是指個體的每個基因值用某一范圍內的一個浮點數來表示,而個體的編碼長度等於其決策變數的個數。因為這種編碼方法使用的決策變數的真實值,也稱之為真值編碼方法。
(2)舉例:
(3)優點:實數編碼是遺傳演算法中在解決連續參數優化問題時普遍使用的一種編碼方式,具有較高的精度,在表示連續漸變問題方面具有優勢。
4、排列編碼
排列編碼也叫序列編碼,是針對一些特殊問題的特定編碼方式。排序編碼使問題簡潔,易於理解。該編碼方式將有限集合內的元素進行排列。若集合內包含m個元素,則存在m!種排列方法,當m不大時,m!也不會太大,窮舉法就可以解決問題。當m比較大時,m!就會變得非常大,窮舉法失效,遺傳演算法在解決這類問題上具有優勢。如解決TSP問題時,用排列編碼自然、合理。
5、其它編碼方式
多參數級聯編碼等

⑵ 遺傳演算法的核心是什麼!

遺傳操作的交叉運算元。

在自然界生物進化過程中起核心作用的是生物遺傳基因的重組(加上變異)。同樣,遺傳演算法中起核心作用的是遺傳操作的交叉運算元。所謂交叉是指把兩個父代個體的部分結構加以替換重組而生成新個體的操作。通過交叉,遺傳演算法的搜索能力得以飛躍提高。

交叉運算元根據交叉率將種群中的兩個個體隨機地交換某些基因,能夠產生新的基因組合,期望將有益基因組合在一起。

(2)浮點數編碼的遺傳演算法擴展閱讀

評估編碼策略常採用以下3個規范:

a)完備性(completeness):問題空間中的所有點(候選解)都能作為GA空間中的點(染色體)表現。

b)健全性(soundness): GA空間中的染色體能對應所有問題空間中的候選解。

c)非冗餘性(nonrendancy):染色體和候選解一一對應。

目前的幾種常用的編碼技術有二進制編碼,浮點數編碼,字元編碼,變成編碼等。

而二進制編碼是目前遺傳演算法中最常用的編碼方法。即是由二進制字元集{0,1}產生通常的0,1字元串來表示問題空間的候選解。

⑶ 遺傳演算法的基本框架

遺傳演算法不能直接處理問題空間的參數,必須把它們轉換成遺傳空間的由基因按一定結構組成的染色體或個體。這一轉換操作就叫做編碼,也可以稱作(問題的)表示(representation)。
評估編碼策略常採用以下3個規范:
a)完備性(completeness):問題空間中的所有點(候選解)都能作為GA空間中的點(染色體)表現。
b)健全性(soundness): GA空間中的染色體能對應所有問題空間中的候選解。
c)非冗餘性(nonrendancy):染色體和候選解一一對應。
目前的幾種常用的編碼技術有二進制編碼,浮點數編碼,字元編碼,變成編碼等。
而二進制編碼是目前遺傳演算法中最常用的編碼方法。即是由二進制字元集{0,1}產生通常的0,1字元串來表示問題空間的候選解。它具有以下特點:
a)簡單易行
b)符合最小字元集編碼原則
c)便於用模式定理進行分析,因為模式定理就是以基礎的。 進化論中的適應度,是表示某一個體對環境的適應能力,也表示該個體繁殖後代的能力。遺傳演算法的適應度函數也叫評價函數,是用來判斷群體中的個體的優劣程度的指標,它是根據所求問題的目標函數來進行評估的。
遺傳演算法在搜索進化過程中一般不需要其他外部信息,僅用評估函數來評估個體或解的優劣,並作為以後遺傳操作的依據。由於遺傳演算法中,適應度函數要比較排序並在此基礎上計算選擇概率,所以適應度函數的值要取正值。由此可見,在不少場合,將目標函數映射成求最大值形式且函數值非負的適應度函數是必要的。
適應度函數的設計主要滿足以下條件:
a)單值、連續、非負、最大化
b) 合理、一致性
c)計算量小
d)通用性強。
在具體應用中,適應度函數的設計要結合求解問題本身的要求而定。適應度函數設計直接影響到遺傳演算法的性能。 遺傳演算法中初始群體中的個體是隨機產生的。一般來講,初始群體的設定可採取如下的策略:
a)根據問題固有知識,設法把握最優解所佔空間在整個問題空間中的分布范圍,然後,在此分布范圍內設定初始群體。
b)先隨機生成一定數目的個體,然後從中挑出最好的個體加到初始群體中。這種過程不斷迭代,直到初始群體中個體數達到了預先確定的規模。

⑷ 關於浮點數的編碼問題

0.1000用二進製表示,2便是次數是2進制的,那個1換過十進制的數就是2的負一次方,就是1/2了。建議你看一下:
http://wenku..com/view/19b9bf717fd5360cba1adb1d.html
里介紹浮點數的問題,上個問題你還少給了符號位和階碼。浮點數的表示S,P,M缺一不可。
以後可別只給一個尾數就行了。

⑸ 浮點數編碼介紹

(1)浮點數:
小數點位置可移動的數據稱為浮點數,可用下式表示:N=M*RE
其中,M—尾數,
R—階的基數(也就是指數部分的底)。R 一般取2、8或16,為約定的常數,大多數機器 R 取定為2。
E—階的階碼。

當基數約定後,對浮點數的編碼就只需對尾數和階碼部分進行編碼。浮點數在機器中的形式如下:

尾數M用定點小數表示,階碼E是整數。 M乘以RE後小數點的位置改變,改變指數部分RE的值,小數點的位置隨之變動,故稱上述表示法表示的數據為浮點數。

(2)浮點數的編碼
階碼E一般用移碼或補碼表示,尾數用原碼或補碼表示。
機器零當浮點數的尾數部分M=0時,不論階碼為何值,都看作是零值,稱為機器零。
上溢浮點數的絕對值太大而機器不能表示的情況,此時浮點數的階碼大於機器所能表示的最大階碼。
下溢浮點數的絕對值太小(階碼小於機器所能表示的最小階碼)的情況稱為下溢。當浮點數下溢時,通常將尾數各位強置為零 ,按機器零處理。


(3)規格化浮點數
為了便於浮點數之間的運算與比較,也為了提高浮點數的精度,規定計算機中的浮點數尾數部分必須滿足1/R≤|M|<1,也即,小數點後的第一位必須是有效數字。當尾數用補碼表示,且R=2時,其規格化形式一般為:

上式表明,當尾數的最高數值位與符號位相反時,即為規格化形式。但對於M<0 有兩種特殊情況需考慮。
*M=-1/2,按規定是規格化數,但[-0.5]補=1.10…0,與一般情況相悖,為便於硬體判斷,特規定-0.5不是規格化的數(對補碼而言)。
*M=-1,因小數補碼允許表示-1,且[-1]補=1.00…0.故將-1作為規格化數(對補碼而言 )

(4)IEE754標准
現代計算機中,浮點數一般採用IEEE制定的國際標准,形式如下;
符號位s 階碼e 尾數 總位數
短實數(單精度數) 1 8 23 32
長實數(雙精度數) 1 11 52 64
臨時實數 1 15 64 80

在IEEE754浮點數標准中,符號位也是「0」表示正數,「1」表示負數。階碼也用移碼表示,尾數也是規格化表示,但為如下形式:1.ff---f.在實際表示中,整數位的1省略,稱隱藏位 (臨時實數不採用隱藏位方案)。由於尾數形式的變化,階碼部分也與一般移碼不同,對短實數而言,[X]移=27+x-1=127+x,也就是說此種移碼比一般移碼的值小1,如.[810]移為13310 而不是13410。所以,短實數.長實數和臨時實數的階碼偏移量分別為7FH、3FFH和3FFFH。單精度數所表示的數值為:(-1)5 1.ff---f*2e-127。
注意:浮點數的編碼有多種方法,在實際應用時,首先一定要明確是哪種編碼方法,分清各種編碼方法的不同之處,這樣才能不出差錯。

4.文字的編碼
(1) 西文字元的編碼目前常用的編碼系統是ASCII碼(American Standard Code for Information Interchange)。
ASCII碼特點:
*每個字元用7位二進制代碼表示。在計算機中每個符號實際用8位表示,最高位置「0」或作為奇偶校驗位。
*共有128個符號。其中95個可印刷字元(包括空格),其餘為控制字元。
*字元0——9的高3位編碼為011,低4位為0000——1001(正好為二進制形式的0—9),滿足正常的排序關系,且大、小寫英文一位字母編碼的對應關系簡單,大寫字母的高2位編碼10,低5位為00001-11010(為二進制形式的1—26),小寫字母高2位為11,低5位也為0000—11010。
(2)中文編碼
漢字編碼分輸入碼、機內碼和字形碼等三大類。
漢字輸入碼 主要有數字編碼、拼音編碼和字形編碼等。這幾種編碼方式都是利用相應的編碼規則,用字母數字串代
替漢字,從西文標准鍵盤上輸入漢字。
漢字機內碼用於漢字信息存儲、交換、檢索等的機內代碼,一般用兩個或三個位元組表示一個漢字。為了區別於ASCII
碼,漢字機內代碼中位元組的最高位均為「1」。
漢字字形碼根據漢字字形信息進行編碼,存儲在字形庫中,用於漢字的輸出,常用點陣表示漢字字形。
(3)十進制數的編碼
*字元串形式一個位元組存放一個十進制的數位或符號,用連續的多個位元組表示一個完整的十進制數據。
十進制數據的機內表示常用ASCII碼。有前分隔字元串和串兩種方式。
#前分隔字元串 符號位在數字位之前單獨佔用一個位元組。字元「+」(2B)16表示正號,「-」(2D)16表 示負號。
#後嵌入字元串 將符號位嵌入最低一位數字里。規則:將「-」號變成(40)16與最低位數相加。「+」號省略。
上述兩種表示方法主要用於非數值計算的應用領域,算術運算不方便。
壓縮十進制數串形式一個位元組存放兩個十進制數位,用連續的多個位元組表示一個完整的十進制數據。比前一種形式節省存儲空間並且便於數據處理,應用廣泛。
在壓縮十進制數串形式中,可以用ASCII碼的低4位或BCD碼表示十進制數。符號位也用4位二進制代碼表示,並放在最低數位之後(C)16=(1100)2代表正號,(D)16=(1101)2表示負號。
用十進制數串表示十進制數據的特點是位長可變,但需給出首地址和串長。

⑹ 遺傳演算法求離散點的最值問題,離散點的編碼方式是浮點編碼,MATLAB如何實現交叉和變異操作

找一本書《MATLAB遺傳演算法工具箱》,作者是雷英傑,裡面有你要的程序。當然看王小平的《遺傳演算法-理論,應用及軟體實現》 也可以,不過這本書裡面的付的程序是c語言的。

⑺ 遺傳演算法中的浮點數編碼到底是怎樣的,急!

去intel網站找。

⑻ 浮點數的編碼怎麼做我要過程,謝謝

第一步,將十進制-86.5用二進製表示為-1010110.1。很明顯符號位為1。
第二步,進行規格化,將1010110.1規約化表示成1.0101101×2的6次方。
因此尾數部分為10101101000;
指數部分取6的補碼為00110(要注意這個處理與IEEE 754是不一樣的)。

因此最終編碼後的二進制序列為10011010101101000。

⑼ 你好,請問matlab中使用遺傳演算法編程,變數既有0-1整數,又有0~1之間的實數,該怎麼編碼處理啊謝謝

可以用二進制編碼,對於0-1整數,顯然可以解決;對於0~1之間的實數,可以用解碼的方式,將其映射到0~1范圍內。比如:二進制01101轉換成十進制是15,那麼你可以將其乘以0.01,變為0.15。其他類似。

⑽ 你好,請問你有沒有浮點數編碼實例的遺傳演算法的c++源代碼 或者實數編碼也行

浮點數編碼還不明白

C++還沒有學

遺傳演算法還不知道

實說編碼還沒有學

熱點內容
伺服器如何查原廠件和拆機件 發布:2024-11-18 14:54:18 瀏覽:357
資料庫的設計要求 發布:2024-11-18 14:48:21 瀏覽:401
電腦配置要從哪些方面看 發布:2024-11-18 14:44:19 瀏覽:568
安卓70以下用什麼連點器 發布:2024-11-18 14:40:19 瀏覽:308
python向上取整函數 發布:2024-11-18 14:39:32 瀏覽:187
中金資產如何配置 發布:2024-11-18 14:19:49 瀏覽:77
逆天腳本製作方法 發布:2024-11-18 14:08:39 瀏覽:494
搭建全功能伺服器儲存愛快 發布:2024-11-18 14:07:45 瀏覽:64
python使用redis 發布:2024-11-18 13:59:20 瀏覽:178
安佳和美可卓藍胖子哪個奶粉好 發布:2024-11-18 13:56:22 瀏覽:464