- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
⼈⼯智能-遗传算法解决⼋皇后问题-python源码
问问题题描描述述 ::
⼋皇后问题,⼀个古⽼⽽著名的问题,是回 算法的典型案例。该问题由国际西洋棋棋⼿马克斯 ·贝瑟尔于 1848 年提出:在
8 ×8 格的国际象棋上摆放⼋个皇后,使其不能互相攻击,即任意两个皇后都不能处于同⼀⾏、同⼀列或同⼀斜线上,问有多少种摆
法。
算法解决流程图为 :
源代码为 :
import numpy as np
import random
import time
import operator
# 遗传算法解决⼋皇后问题
# ⼋皇后初始化函数
def init() :
cache = {}
m = np.zeros((8, 8), dtype=int)
for i in range(0, 8) :
temp = random.randrange(0, 8)
m temp, i] = 1
cache "queen" + str(i)] = temp, i]
return m, cache
# 计算⼀个⼋皇后状态的适应度,计算⽅法为皇后⽆碰撞数量
def fitness_algorithm_single(coord_cache) :
weight = 0
for i in range(0, 8) :
row, column = coord_cache "queen" + str(i)]
for j in range(i + 1, 8) :
_ row, _column = coord_cache "queen" + str(j)]
if _ row - row == j - i or _ row - row == i - j :
weight += 1
if _ row == row :
weight += 1
return 28 - weight # 28表⽰最优解状态互不攻击的皇后数 ⽬,减去碰撞数 ⽬即为适应度
# 为⼀个种群计算适应度
def fitness_algorithm_for_ list(list) :
for i in list :
fitness = fitness_algorithm_single(i)
i "fitness"] = fitness]
return list
# 根据适应度计算出每个样本被选择的概率
def select_ probability(list) :
total_fitness = 0
specimen_ list = list
for i in specimen_ list :
fitness = i "fitness"]
fitness = i "fitness"]
total_fitness += fitness 0]
for j in specimen_ list :
fitness = j "fitness"]
j "select"] = fitness 0] / total_fitness]
return specimen_ list
# 初始化种群函数,并依据适应度进⾏了排序
def init_ population(M) :
specimen_ list = ] # 种群列表
for i in range(M) :
m, coord_cache = init()
specimen_ list.append(coord_cache)
specimen_ list = fitness_algorithm_for_ list(specimen_ list)
# 对适应度进⾏排序 specimen_ list的结构为 {"queen0": row,column] "weight": weight]}]
specimen_ list = sorted(specimen_ list, key=lambda keys: keys "fitness"], reverse=T
您可能关注的文档
- 合同补充协议书范本.docx
- 初二家长会班主任发言稿.doc
- 体育课篮球教学反思(通用11篇).docx
- 工商管理社会实践报告.doc
- 私车公用租赁协议.doc
- 一种舍外牛饮水防冻保温槽实用新型专利.pdf
- 小升初入学英语试卷(带答案).docx
- 2022高考物理选考题专题--热学解答题(二)--液柱模型:液柱移动问题.docx
- 护肤品中常见的酵母菌添加物有哪些?.pdf
- 【专业】混合式步进电机的尺寸-常说的42步进电机、57步进电机的分类标准是什么?.docx
- 新闻类归纳概括题解题技巧课件.pptx
- 竞争分析介绍.pdf
- 无桥sepicpfc转换器具有低谐波失真高功率因数共享.pdf
- 人教课标高必修3unit2book 3一课一研reading.pdf
- 2023年11月福建福州市招商服务中心公开招聘编外人员1人笔试历年高频考点-难、易错点荟萃-附带答案详解.docx
- 2023年11月广东省茂名市电白区区直医疗卫生单位赴广东医科大学东莞校区现场公开招聘64名医技人员笔试历年高频考点(难、易错点荟萃)附带答案详解.docx
- 2023年11月深圳市大鹏新区区属公办中小学赴外面向2024年应届毕业生公开招聘46名事业编制教师1笔试历年高频考点(考察重点荟萃)附答案详解.docx
- 2023年12月山东省立第三医院招考聘用17人笔试历年高频考点(考察重点荟萃)附答案详解.docx
- 2023年11月北京经济技术开发区卫生健康领域事业单位招考聘用22人笔试历年高频考点-难、易错点荟萃-附带答案详解.docx
- 2023年11月安徽省产品质量监督检验研究院编制外人员招考聘用10人笔试历年高频考点-难、易错点荟萃-附带答案详解.docx
1亿VIP精品文档
相关文档
最近下载
- 雅马哈船外机F115 F130 中文维修手册.pdf VIP
- 12J9-1 国家标准图集.pdf
- 2022-2023学年河北省保定市高三上学期期末调研考试物理试题(解析版).docx
- 2022-2023学年云南省昆明市县市区九年级上学期期末数学试卷(含答案解析).docx
- 苏教版三上数学第1单元 两、三位数乘以一位数 高频单元易错题练习.docx VIP
- 汽车高强板零件冲压工艺及模具结构设计.pptx VIP
- 公安业务培训工作成效分析.pptx VIP
- 高中英语必背3500单词表(完整版).pdf
- 高中物理必修3物理全册全单元精选试卷测试卷(含答案解析).docx
- 精品版初中数学七年级数学上册第五单元《一元一次方程》测试题(有答案解精品.pdf
文档评论(0)