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

代碼片段和文件信息
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()
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????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
評論
共有 條評論