1. 程式人生 > >Mathematica 遺傳演算法的思路和部分程式

Mathematica 遺傳演算法的思路和部分程式

為了節省空間,染色體和基因用整數表示,運算的時候看成二進位制就是了,應該可以大大提高速度

隨機建立種群:

GANewGroup[n_:50,l_:16]:=Table[RandomInteger[2^l],n];

基因解碼(這裡按照自己的編碼方式改成自己的):

GADecode[x_]:=x*0.00003051757813;

適應度(改成自己的):

GAFitness[x_]:=(2-x)Exp[x];

染色體交叉互換,n是位置:

GACross[x_,y_,n_]:={x-#1+#2,y-#2+#1}&@@Mod[{x,y},2^n];

暫時這些 其他內容有時間再補充

使用舉例:

group=GANewGroup[100,16];(*生成染色體長度16,100個個體的種群*)
fitness=RankedMax[GAFitness/@group,Floor[0.8*[email protected]]];(*計算淘汰20%個體的適應度*)
group=DeleteCases[group,x_/;[email protected]<fitness];(*淘汰個體*)
(*繁殖新的個體*)
(*......*)

相關推薦

Mathematica 遺傳演算法思路部分程式

為了節省空間,染色體和基因用整數表示,運算的時候看成二進位制就是了,應該可以大大提高速度 隨機建立種群: GANewGroup[n_:50,l_:16]:=Table[RandomInteger[2^l],n]; 基因解碼(這裡按照自己的編碼方式改成自己的): GAD

演算法》BEYOND 部分程式 part 1

▶ 書中第六章部分程式,加上自己補充的程式碼,包括高斯消元法求解線性方程組,高斯 - 約旦消元法求解線性方程組 ● 高斯消元法求解線性方程組,將原方程轉化為上三角矩陣,然後從最後一個方程開始求解 1 package package01; 2 3 import edu.princeton

多語言在企業級應用中的實現思路部分程式碼

需要多語言的地方 標題 介面欄位資訊 提示資訊 下拉框資訊 選單資訊 查詢資訊 需要用到的表 詞條表 C_lang 元素對映表 C_ui_lable 語言包 C_use_lang 語言資訊 C_lang_temp 詞條表裡是存的是你的系統的原本語言和“多語言

通俗解釋matlab之遺傳演算法程式部分(二)

(1)程式怎麼開始 從哪裡開始程式比較好了?直接先主函式吧,然後再分著說: %-------------函式說明---------------- %             主函式       %---------------------------------------

演算法》第四章部分程式 part 11

▶ 書中第四章部分程式,包括在加上自己補充的程式碼,二分圖的判定和染色 ● 二分圖 1 1 //+----------------------------------------------------------------------------- 2 // 第四章,二分圖 3 pa

演算法》第四章部分程式 part 10

▶ 書中第四章部分程式,包括在加上自己補充的程式碼,包括無向圖連通分量,Kosaraju - Sharir 演算法、Tarjan 演算法、Gabow 演算法計算有向圖的強連通分量 ● 無向圖連通分量 1 package package01; 2 3 import edu.princet

演算法》第四章部分程式 part 5

▶ 書中第四章部分程式,加上自己補充的程式碼,圖的深度優先遍歷 ● 無向圖的廣度優先遍歷,有向 / 無向圖程式碼僅若干方法名不同 1 package package01; 2 3 import edu.princeton.cs.algs4.In; 4 import edu.prin

演算法》第四章部分程式 part 4

▶ 書中第四章部分程式,加上自己補充的程式碼,圖的深度優先遍歷 ● 無向圖的深度優先遍歷,有向 / 無向圖程式碼僅若干方法名不同,包括遞迴和非遞迴版本,去掉了頂點有效性的檢查 1 package package01; 2 3 import java.util.Iterator;

演算法》第六章部分程式 part 1

▶ 書中第六章部分程式,包括在加上自己補充的程式碼,粒子碰撞系統及用到的粒子類 ● 粒子系統 1 package package01; 2 3 import java.awt.Color; 4 import edu.princeton.cs.algs4.StdIn; 5 imp

演算法》第六章部分程式 part 2

▶ 書中第六章部分程式,包括在加上自己補充的程式碼,B-樹 ● B-樹 1 package package01; 2 3 import edu.princeton.cs.algs4.StdOut; 4 5 public class class01<Key extends

幾種常用排序演算法思路複雜度對比

1、插入排序——直接插入排序、希爾排序 (1)直接插入排序思路:從第1號元素開始,每個元素依次與前面的元素做比較,小的排前面,這樣當比較到最後一 個元 素完即完成排序。 (2)希爾排序思路:     

經典整合學習演算法部分python實現

Boosting Boosting的大概思想是先從初始訓練集中訓練出一個基學習器,再根據這個基學習器對訓練集的判斷重新調整訓練集,讓當前分類器判斷錯誤的樣本在後續學習中受到更高的關注,如此不斷迭代,直到生成目標數目的基學習器,然後根據權重相加,獲得一個強學習器

【 MATLAB 】遺傳演算法程式

有段時間,一直用為知筆記記筆記,可是後來使用了csdn部落格後,就不太喜歡用為知筆記了,可惜了我的會員。筆記裡的一些東西,例如公式什麼的,都不能直接複製過來,很是遺憾。 準備棄用為知筆記了,把這個遺傳演算法的程式粘過來吧,即使對我可能沒什麼用了,但也可能有需要用的人。 程

fitype擬合多引數函式遺傳演算法擬合多引數函式

多引數擬合函式最重要的是初始點。初始點的選擇可以靠直覺和經驗,也可以通過遺傳演算法從大範圍逐步的逼近。 基本語法如下: 這是函式:z=a*(x^b)*(y^c)的函式的擬合。x,y是自變數,z是應變數,a,b,c是擬合的引數。 fit的語法是:fit(自變數,應變數,f

粒子群演算法遺傳演算法的比較

粒子群演算法(PSO)和遺傳演算法(GA)都是優化演算法,都力圖在自然特性的基礎上模擬個體種群的適應性,它們都採用一定的變換規則通過搜尋空間求解。     PSO和GA的相同點:   (1)都屬於仿生演算法。PSO主要模擬鳥類覓食、人類認知等社會行

微信小程式支付功能,完成整個交易的思路程式碼

開發工具:微信開發者工具,Intellij idea 2018 框架:spring boot  交易流程圖: 下面直接上程式碼: 1.在wxml新增一個支付按鈕,點選監聽payMethod方法 <view><button bindtap='pa

(C/C++學習)19.單目標遺傳演算法的C程式實現

說明:在學習生活中,經常會遇到各種各樣的最優問題,其中最常見的就是求某個多維(多個自變數)函式在各個自變數各取何值時的最大值或最小值;例如求函式 f(x) = (x-5)2+(y-6)2+(z-7)2 的最小值,當然,這個函式很簡單,很容易看出來,該函式的最小值為0,分別在三個自變數取5,6,7時取得最小值。

C++版遺傳演算法求解TSP Java版GA_TSP(我的第一個Java程式

  嗯哼,時隔半年,再次有時間整理關於組合優化問題——旅行商問題(Traveling Salesman Problem, TSP),這次採用的是經典遺傳演算法(Genetic Algorithm, GA)進行求解,利用C++語言進行程式設計實現。關於TSP問題以及GA的簡單介紹,可參見我的另一篇文章:Java

實現基於微信小程式的人臉識別思路步驟

人臉識別就是:指利用分析比較人臉視覺特徵資訊進行身份鑑別的計算機技術。人臉識別是一項熱門的計算機技術研究領域,可以將人臉明暗偵測,自動調整動態曝光補償,人臉追蹤偵測,自動調整影像放大;它屬於生物特徵識別技術,是對生物體(一般特指人)本身的生物特徵來區分生物體個體。原文:htt

[px3][Android7.1]除錯筆記RK LCD顯示驅動分析(fbscreen 部分程式

平臺 核心版本 安卓版本 px3 Linux3.0 Android7.1 檢視裝置: ls /sys/devices/platform