隨機產生初始族群
GA 的第一步是隨機產生一群染色體。以二進位編碼時,每個染色體是一串 0 與 1;若有 var_n 個參數、每個參數用 bit_n 個位元,染色體長度就是 bit_n × var_n。(說明為補充)
function popu=GA1_InitPopu(popusize,bit_n,var_n)
%popusize 為染色體總數
%bit_n 為每個變數之位元數
%var_n 為變數總數
popu=rand(popusize,bit_n*var_n)>0.5;
▶ 在 Colab 開啟原課程的 MATLAB 程式已改寫成 Python 筆記本(第 1 節 GA1_InitPopu),可以直接在瀏覽器執行、修改參數。⬇ 下載 GA.ipynb
rand(m,n) 產生 0~1 之間均勻分布的亂數矩陣,和 0.5 比較後得到 0/1 各半機率的邏輯矩陣:每一列就是一個染色體。例如 GA1_InitPopu(4,5,2) 會得到 4 列、10 行的 0/1 矩陣,每列前 5 個位元代表第一個參數、後 5 個代表第二個參數(見參數解碼)。
下面是老師錄製的 Matlab 操作示範(RoboDemo 錄影,以 Ruffle 播放):
原講義附檔:GA1_InitPopu.zip