/*以下**實現了乙個簡單的花朵進化的模擬過程。
花朵的種群數量是10,共進化了50代。
通過執行程式,你會發現通過不斷的進化,種群的總的適應環境的能力在逐步提高(fitness的值下降)。
實現**:*/
using system;
using system.collections.generic;
using system.text;
namespace ga}}
class world
/**/
///
/// 初始化第一代花朵的基因結構
///
public void init()
currenttemperature = rnd.next(1, 75);
currentwater = rnd.next(1, 75);
currentsunlight = rnd.next(1, 75);
currentnutrient = rnd.next(1, 75);
currentbeneficialinsect = rnd.next(1, 75);
currentharmfulinsect = rnd.next(1, 75);
}/**/
///
/// 越大說明花朵的適應環境的能力差,**明適應環境的能力強
///
///
///
private int fitness(int flower)
/**/
///
/// 排除適應能力差的花朵,讓適應能力強的花朵雜交繁殖,產生下一代。同時有一定的概率變異。
///
public void evolve()
temperature[leastfitindex] = temperature[rnd.next(1, 10)];
water[leastfitindex] = water[rnd.next(1, 10)];
sunlight[leastfitindex] = sunlight[rnd.next(1, 10)];
nutrient[leastfitindex] = nutrient[rnd.next(1, 10)];
beneficialinsect[leastfitindex] = beneficialinsect[rnd.next(1, 10)];
harmfulinsect[leastfitindex] = harmfulinsect[rnd.next(1, 10)];
for (i = 1; i < kmaxflowers; i++)
for (i = 1; i < kmaxflowers; i++)
for (i = 1; i < kmaxflowers; i++)
}/**/
///
/// 顯示種群中個體對環境的適應能力,還有所有個體對環境的適應能力之和。
///
public void show()
console.writeline("fitness sum is " + sum);}}
}
進化演算法 遺傳演算法
一 能解決的問題 如果你需要解決乙個問題,這個問題的每乙個可能的解均可以用位串來表示,那麼遺傳演算法就能解決這個問題。二 術語 個體 每乙個可能的解 種群 一群個體 基因 個體中位的乙個序列包含著個體的一些特徵資訊,這個序列被稱為基因 染色體 乙個個體中全部基因的集合 基因型 特定的基因被稱為基因型...
遺傳演算法與進化演算法
1858年7月1日c.r.達爾文與a.r.華萊士在倫敦林奈學會上宣讀了演化論的 至此進化理論深入人心,為廣大吃瓜群眾開闢了乙個思想的新的天地。而我們的機器學習大師們向來喜歡從生物學家那裡找靈感,神經網路的靈感據說來自於人體的神經元,而根據演化論的思想,我們的大師們提出了遺傳演算法和進化演算法。其實我...
CI 模擬進化與遺傳演算法
模擬進化計算 simulated evolutionary computation 是近二十年來資訊科學 人工智慧與電腦科學的一大研究領域,由此所派生的求解優化問題的仿生類演算法 遺傳演算法 演化策略 進化程式 由於其鮮明的生物背景 新穎的設計原理 獨特的分析方法和成功的應用實踐,正日益形成全域性搜...