資源簡(jiǎn)介
用python語言,通過遺傳算法,解決八皇后問題,,遺傳算法(Genetic algorithm)屬于演化計(jì)算( evolutionary computing),是隨著人工智能領(lǐng)域發(fā)展而來的一種智能算法。正如它的名字所示,遺傳算法是受達(dá)爾文進(jìn)化論啟發(fā)。簡(jiǎn)單來說,它是一種通過模擬自然進(jìn)化過程搜索最優(yōu)解的方法

代碼片段和文件信息
import?genetic?random
class?EightQueens:
????def?test(self?size?=?8?mutation_prob?=?0.001?population_size=10):
????????geneSet?=?[i?for?i?in?range(size)]
????????def?fnGetFitness(genes):
????????????return?get_fitness(genes?size)
????????optimalFitness?=?0
????????genetic.get_best(fnGetFitness?geneSet?optimalFitness?1000000?0.001)
def?get_fitness(genes?size):
????fitness?=?0
????for?i?in?range(len(genes)):
????????fitness?+=?genes.count(genes[i])?-?1
????????for?j?in?range(len(genes)):
????????????if?(i?!=?j):
????????????????dx?=?abs(i?-j)
????????????????dy?=?abs(genes[i]?-?genes[j])
????????????????if?(dx?==?dy):
????????????????????fitness?+=?1
????return?fitness
if?__name__?==?‘__main__‘:
????solver?=?EightQueens()
????
????print?“Solution?to?the?eight?queens?problem?using?genetic?algorithms“
????print?“Mutation?proability?=?0.1?%“
????print?“Maximum?iterations?=?1000000“
????
????solver.test()
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-11-23?07:55??EightQueens-master\
?????文件????????1157??2017-11-23?07:55??EightQueens-master\.gitignore
?????文件?????????927??2017-11-23?07:55??EightQueens-master\EightQueens.py
?????文件?????????806??2017-11-23?07:55??EightQueens-master\README.md
?????文件????????5342??2017-11-23?07:55??EightQueens-master\genetic.py
評(píng)論
共有 條評(píng)論