1. 程式人生 > >用遺傳演算法加強足球遊戲的人工智慧

用遺傳演算法加強足球遊戲的人工智慧

Populationstd::vector容器儲存物種的所有個體(m_iColonySizeChromosome的例項),m_dIntercrossRatem_dAgamogenesisRatem_dMutantRate三個變數分別是交叉率、複製率和變異率,其中染色體交叉是自然界中生物繁殖的最常見方式,可以保證優秀的基因可以遺傳到下一代或者有很大的機會使得部分優秀基因和另一部分優秀基因結合為一個非常優秀的染色體,因此交叉率比較高,一般取值在0.10.5之間;複製率即是無性繁殖的機率,無性繁殖在自然界中是普遍存在的正常現象(如植物中的落地生根和動物中的蚯蚓),無性繁殖可以確保優秀的個體有一定的機會壯大自己的種群,一般複製率取值在
0.030.1之間;變異在自然界中是發生機率極小的事件,而且變異多是惡性的,所以變異率的取值範圍在0.0050.05之間,但變異可以讓遺傳演算法跳出區域性最優,因而是必須的一個操作運算元。m_iColonySize是種群的大小,種群越大,找到解的機會越大,但花費的時間也相對比較多,一般設為可以接受的固定值,也可以編寫與問題難度相關的函式來決定,本實驗使用m_iColonySize=100的固定值方式。