遺傳演算法 定向進化 字元

2022-09-08 02:39:09 字數 1159 閱讀 1798

遺傳演算法借鑑了達爾文的演化論思想,不斷地接近需求形態。

遺傳演算法遵循這個個規則。1、有乙個初始化種群。2、有乙個篩選種群中成員的規則---不合適者淘汰、相似者儲存。3、確定交配權利---優先度。4、選擇親本產生子代----如何選擇親本?如何產生子代?產生子代的過程中是否要突變?

如果要生成乙個指定的字串,選擇合適的親本至關重要。如果親本選擇不那麼恰當,生成目標字串的可能性會很低。可能繁衍幾百萬代還沒有乙個目標字串。選擇的好,可能產生七八代就有目標字串。---即淘汰規則很重要。

函式邏輯圖:

相應**:

全域性變數和結構體:

#include#include#include#define d 5

#define g 100

const double mutation=0.01;//隨機生成1-100的數,再轉化為小數。

typedef struct dnadna;

void judge();

void chose();

void reprodution();

/*初始化種群---*/

/*選擇----建立適應度--交配池*/

/*繁殖----根據適應度選擇親代---交叉--突變--新種群替代舊種群*/

/*回到選擇*/

dna group[g];

double priority[g];

int flag=1;

主函式:

int main()}}

init函式---初始化種群:

void  init();//進化方向字元

/*優先度設定為0、1、2、3、4*/

int i,j;

double p=0;

for(i=0;i

---判斷有沒有符合要求的個體
void  judge();

for(i=0;i效果圖:

}

進化演算法 遺傳演算法

一 能解決的問題 如果你需要解決乙個問題,這個問題的每乙個可能的解均可以用位串來表示,那麼遺傳演算法就能解決這個問題。二 術語 個體 每乙個可能的解 種群 一群個體 基因 個體中位的乙個序列包含著個體的一些特徵資訊,這個序列被稱為基因 染色體 乙個個體中全部基因的集合 基因型 特定的基因被稱為基因型...

遺傳演算法與進化演算法

1858年7月1日c.r.達爾文與a.r.華萊士在倫敦林奈學會上宣讀了演化論的 至此進化理論深入人心,為廣大吃瓜群眾開闢了乙個思想的新的天地。而我們的機器學習大師們向來喜歡從生物學家那裡找靈感,神經網路的靈感據說來自於人體的神經元,而根據演化論的思想,我們的大師們提出了遺傳演算法和進化演算法。其實我...

遺傳演算法之花朵進化

以下 實現了乙個簡單的花朵進化的模擬過程。花朵的種群數量是10,共進化了50代。通過執行程式,你會發現通過不斷的進化,種群的總的適應環境的能力在逐步提高 fitness的值下降 實現 using system using system.collections.generic using system...