启发式算法Python代码库——scikit-opt.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

135****0879 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档