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顯示驅動分析(fb和screen 部分程式)
平臺 核心版本 安卓版本 px3 Linux3.0 Android7.1 檢視裝置: ls /sys/devices/platform