- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
启发式算法Python代码库——scikit-opt
⼀个封装了7种启发式算法的 Python 代码库——scikit-opt
( 分进化算法、遗传算法、粒⼦群算法、模拟退⽕算法、蚁群算法、鱼群算法、免疫优化算法)
安装
pip install scikit-opt
特性
特性1 :UDF (⽤户 ⾃定义算⼦)
# step 1: define your own op erator:
def selection_tournament(algorithm, tourn_size) :
FitV algorithm.FitV
sel_ index []
for i in range(algorithm.size_ pop) :
aspirants_ index np.random.choice(range(algorithm.size_ pop), size tourn_size)
sel_ index.append(max(aspirants_ index, key lambda i: FitV[i]))
algorithm.Chrom algorithm.Chrom[sel_ index, :] # next generation
return algorithm.Chrom
导⼊包,并且创建遗传算法实例
import numpy as np
from sko.GA import GA, GA_TSP
demo_func lambda x : x[0] ** 2 + (x[1] - 0.05) ** 2 + (x[2] - 0.5) ** 2
ga GA(func demo_func, n_dim 3, size_ pop 100, max_ iter 500, prob_ mut 0.001,
lb [-1, -10, -5], ub [2, 10, 2], precision [1e-7, 1e-7, 1])
把你的算⼦注册到你创建好的遗传算法实例上
ga.register(operator_ name selection, operator selection_tournament, tourn_size 3)
scikit-opt 也提供了⼗⼏个算⼦供你调⽤
from sko.operators import ranking, selection, crossover, mutation
ga.register(operator_ name ranking, operator ranking.ranking). \
register(operator_ name crossover, operator crossover.crossover_2point). \
register(operator_ name mutation, operator mutation.mutation)
做遗传算法运算
best_x, best_y ga.run()
print(best_x :, best_x, \n, best_y :, best_y)
现在 udf ⽀持遗传算法的这⼏个算⼦ : crossover, mutation, selection, ranking
Scikit-opt 也提供了⼗来个算⼦
提供⼀个⾯向对象风格的⾃定义算⼦的⽅法,供进阶⽤户使⽤:
class MyGA(GA) :
def selection(self, tourn_size 3) :
FitV self.FitV
sel_ index []
for i in range(self.size_ pop) :
aspirants_ index np.random.choice(range(self.size_ pop), size tourn_size)
sel_ index.append(max(aspirants_ index, key lambda i: FitV[i]))
self.Chrom self.Chrom[sel_ index, :] # next generation
您可能关注的文档
最近下载
- 毛中特题库及答案.doc VIP
- TIA-942数据中心电信基础设施标准(中文版).pptx VIP
- 智能经济+人工智能与制造融合可行性研究.docx VIP
- 人教版小学五年级上册数学第一单元.ppt VIP
- 人教版小学科学《建筑中的结构(一)》教学课件.pptx VIP
- dram技术发展史年表.pdf VIP
- 2025年广西专业技术人员继续教育公需科目考试题库及答案(可考95分以上).docx
- 精品解析:天津市双菱中学2024-2025学年七年级上学期期末考试英语试题(解析版).docx VIP
- 第二单元《银屏乐声》第3课时《人世间》+《永志不忘》课件 人音版八年级音乐上册.pptx VIP
- T_CITS 359—2025(医学实验室分子诊断质控品选择和使用指南).pdf VIP
原创力文档


文档评论(0)