当前位置: 首页 > news >正文

西安网站建设哪家公司好网站备案幕布照片尺寸

西安网站建设哪家公司好,网站备案幕布照片尺寸,企业营销策划书模板,常州建设工程信息网站Python优化算法—遗传算法一、前言二、安装三、遗传算法3.1 自定义函数3.2 遗传算法进行整数规划3.3 遗传算法用于旅行商问题3.4 使用遗传算法进行曲线拟合一、前言 优化算法#xff0c;尤其是启发式的仿生智能算法在最近很火#xff0c;它适用于解决管理学#xff0c;运筹… Python优化算法—遗传算法一、前言二、安装三、遗传算法3.1 自定义函数3.2 遗传算法进行整数规划3.3 遗传算法用于旅行商问题3.4 使用遗传算法进行曲线拟合一、前言 优化算法尤其是启发式的仿生智能算法在最近很火它适用于解决管理学运筹学统计学里面的一些优化问题。比如线性规划整数规划动态规划非线性约束规划甚至是超参数搜索等等方向的问题。 但是一般的优化算法还是matlab里面用的多Python相关代码较少。 我在参考了一些文章的代码和模块之后决定学习scikit-opt这个模块。这个优化算法模块对新手很友好代码简洁上手简单。而且代码和官方文档是中国人写的还有很多案例学起来就没什么压力。 缺点是包装的算法种类目前还不算多只有七种差分进化算法、遗传算法、粒子群算法、模拟退火算法、蚁群算法、鱼群算法、免疫优化算法 本次带来的是数学建模里面经常使用的遗传算法的使用演示。 二、安装 首先安装模块在cmd里面或者anaconda prompt里面输入 pip install scikit-opt对于当前开发人员版本 git clone gitgithub.com:guofei9987/scikit-opt.git cd scikit-opt pip install .三、遗传算法 3.1 自定义函数 UDF用户定义函数现已推出 例如您刚刚制定了一种新型函数。现在你的函数是这样的 f0.5sin2(x12x22)−0.510.001(x12x22)f 0.5 \frac{sin^2(x_1^2 x_2^2) - 0.5}{1 0.001 (x_1^2 x_2^2)} f0.510.001(x12​x22​)sin2(x12​x22​)−0.5​ 该函数有大量的局部最小值具有很强的冲击力在(0,0) 处的全局最小值值为 0。 import numpy as np def schaffer(p):x1, x2 px np.square(x1) np.square(x2)return 0.5 (np.square(np.sin(x)) - 0.5) / np.square(1 0.001 * x)导入和构建 ga 遗传算法 from sko.GA import GA ga GA(funcschaffer, n_dim 2, size_pop 100, max_iter 800, prob_mut 0.001, lb [-1, -1], ub [1, 1], precision 1e-7) best_x, best_y ga.run() print(best_x:, best_x, \n, best_y:, best_y)运行结果为 可以看到基本找到了全局最小值和对应的x 。 画出迭代次数的图 import pandas as pd import matplotlib.pyplot as plt Y_history pd.DataFrame(ga.all_history_Y) fig, ax plt.subplots(2, 1) ax[0].plot(Y_history.index, Y_history.values, ., color red) Y_history.min(axis 1).cummin().plot(kind line) plt.show()GA算法的参数详解 输入参数 输入参数默认值参数的意义func-目标函数n_dim-目标函数的维度size_pop50种群规模max_iter200最大迭代次数prob_mut0.001变异概率lb-1每个自变量的最小值ub1每个自变量的最大值constraint_eq空元组等式约束constraint_ueq空元组不等式约束precision1e-7精确度int / float或者它们组成的列表 输出参数 GA GA_TSP 输出参数参数的意义ga.generation_best_X每一代的最优函数值对应的输入值ga.generation_best_Y每一代的最优函数值ga.all_history_FitV每一代的每个个体的适应度ga.all_history_Y每一代每个个体的函数值 3.2 遗传算法进行整数规划 在多维优化时想让哪个变量限制为整数就设定 precision 为 整数 即可。 例如我想让我的自定义函数的某些变量限制为整数浮点数分别是整数整数浮点数那么就设定 precision[1, 1, 1e-7] 例子如下 from sko.GA import GA demo_func lambda x: (x[0] - 1) ** 2 (x[1] - 0.05) ** 2 x[2] ** 2 ga GA(func demo_func, n_dim 3, max_iter 500, lb [-1, -1, -1], ub [5, 1, 1], precision [1,1,1e-7]) best_x, best_y ga.run() print(best_x:, best_x, \n, best_y:, best_y)可以看到第一个、第二个变量都是整数第三个就是浮点数了 。 3.3 遗传算法用于旅行商问题 商旅问题(TSP)就是路径规划的问题比如有很多城市你都要跑一遍那么先去哪个城市再去哪个城市可以让你的总路程最小。 实际问题需要一个城市坐标数据比如你的出发点位置为0,0第一个城市离位置为x1,y1x_1,y_1x1​,y1​,第二个为x2,y2x_2,y_2x2​,y2​…这里没有实际数据就直接随机生成了。 import numpy as np from scipy import spatial import matplotlib.pyplot as plt num_points 50 points_coordinate np.random.rand(num_points, 2) # generate coordinate of points points_coordinate这里定义的是50个城市每个城市的坐标都在是上图随机生成的矩阵。 然后我们把它变成类似相关系数里面的矩阵 distance_matrix spatial.distance.cdist(points_coordinate, points_coordinate, metriceuclidean) distance_matrix.shape(50, 50)这个矩阵就能得出每个城市之间的距离算上自己和自己的距离0总共有2500个数。 定义问题 def cal_total_distance(routine):num_points, routine.shapereturn sum([distance_matrix[routine[i % num_points], routine[(i 1) % num_points]] for i in range(num_points)])求解问题 from sko.GA import GA_TSP ga_tsp GA_TSP(func cal_total_distance, n_dim num_points, size_pop 50, max_iter 500, prob_mut 1) best_points, best_distance ga_tsp.run()我们展示一下结果 best_distance画图查看计算出来的路径还有迭代次数和y的关系 fig, ax plt.subplots(1, 2,figsize (12, 8)) best_points_ np.concatenate([best_points, [best_points[0]]]) best_points_coordinate points_coordinate[best_points_, :] ax[0].plot(best_points_coordinate[:, 0], best_points_coordinate[:, 1], o-r) ax[1].plot(ga_tsp.generation_best_Y) plt.show()3.4 使用遗传算法进行曲线拟合 构建数据集 import numpy as np import matplotlib.pyplot as plt from sko.GA import GA x_true np.linspace(-1.2, 1.2, 30) y_true x_true ** 3 - x_true 0.4 * np.random.rand(30) plt.plot(x_true, y_true, o)构建的数据是yx3−x0.4yx^3-x0.4yx3−x0.4然后加上了随机扰动项。如图 定义需要拟合的函数三次函数然后将残差作为目标函数去求解 def f_fun(x, a, b, c, d):return a * x ** 3 b * x ** 2 c * x d #三次函数def obj_fun(p):a, b, c, d presiduals np.square(f_fun(x_true, a, b, c, d) - y_true).sum()return residuals求解 ga GA(func obj_fun, n_dim 4, size_pop 100, max_iter 500, lb [-2] * 4, ub [2] * 4) best_params, residuals ga.run() print(best_x:, best_params, \n, best_y:, residuals)可以看到拟合出来的方程为y0.9656x3−0.0065x2−1.0162x0.2162y0.9656x^{3}-0.0065x^{2}-1.0162x0.2162y0.9656x3−0.0065x2−1.0162x0.2162 画出拟合线: y_predict f_fun(x_true, *best_params) fig, ax plt.subplots() ax.plot(x_true, y_true, o) ax.plot(x_true, y_predict, -) plt.show()
http://www.dnsts.com.cn/news/78695.html

相关文章:

  • 贵阳网站建设咨询wordpress计费查询
  • 天津网站建设工作室唐山网站快速排名提升
  • logo设计网站免费无水印淘宝推广方法有哪些
  • 网站如何做才可以微信直接登录网上学设计的培训机构
  • 光明楼网站建设小程序推广的十种方式
  • 心理咨询网站平台建设网站文章发布
  • 网站没有索引量是什么意思韩国有哪些做潮牌的网站
  • 阴阳师网站建设商务网站建设sz886
  • 福建住房和城乡建设部网站ui设计好就业吗
  • 中山移动网站建设报价wordpress 网摘插件
  • 装修公司网站怎么建设公司做网站能抵扣进项税吗
  • 西宁网站搭建企业网站的规划与建设
  • 成都网站建设排名建设电动车官网
  • 网站设计属于什么分类号网站建设费用 无形资产
  • 郑州网站开发招聘快速装修
  • 建立网站服务的公司网站江西建筑工程网
  • 东莞营销网站建设公司山西seo博客
  • 0716网站建设网络优化的工作内容有哪些
  • 重庆市建设工程信息官方网站报价单模板免费下载
  • 对网站的赏析怎么让网站快速收录
  • 科网站建设无锡网站制作建设
  • 高效网站推广设计网站经营模式
  • 网站建设专业性的评估天津怎样做网站推广
  • 靖江网站建设制作wordpress中view不见了
  • 南昌成都网站建设方案wordpress 购物模板下载
  • 做数据结构基础的网站曲阳网站制作公司
  • 石家庄自助建站软件在手机上怎么做微电影网站
  • 找室内效果图的网站汕头网站建设过程
  • 外贸建站服务柳州城乡建设部网站首页
  • 天河网站开发有区域名和主机怎么做网站