最优化
文章平均质量分 79
比奇堡咻飞兜
我很丰富,无法简介
展开
-
【MATLAB】遗传算法(GA)求解TSP问题
1. 概述∙\bullet∙ 产生:1975念,Holland提出GA∙\bullet∙ 来源:生物的进化:自然选择、适者生存;生物的遗传变异。∙\bullet∙ 基本思想:▹\triangleright▹ 根据问题目标函数构造适应度函数(fitness function)▹\triangleright▹ 产生一个初始种群(100-1000)▹\triangleright▹ 根据适应度函数的好坏,不断的进行选择、交叉、变异、繁衍▹\triangleright▹ 若干代后得到适应度函数最好的个体原创 2021-08-07 19:04:31 · 2875 阅读 · 10 评论 -
【MATLAB】禁忌算法(TS)求解TSP问题
目录1.TS概述1.1 TS介绍1.2 TS流程1.3 TS流程特点2.基于TS求解TSP问题2.1 tsp.m2.2 CalDist.m2.3 drawTSP.m2.4 tabu_search.m2.5 结果1.TS概述1.1 TS介绍∙\bullet∙ 概念:禁忌搜索算法(Tabu Serach,简称TS)是一种全局性邻域搜索算法,模拟人类具有记忆功能的寻优特性。它通过领域搜索机制和相应的禁忌准则来避免迂回搜索,并通过破禁水平来释放一些被禁忌的优良状态,从而保证多样化,实现全局最优。∙\bull原创 2021-08-05 12:53:44 · 3707 阅读 · 0 评论 -
【MATLAB】模拟退火算法(SA)求解TSP问题
目录1. SA概述1.1 SA介绍1.2 SA核心1.2.1 三个函数1.2.2 两个准则1.3 SA优缺点1.3.1 优点1.3.2 缺点2. 基于SA解决TSP问题2.1 tsp.m2.2 CalDist.m2.3 drawTSP.m2.4 simulated_annealing.m2.5 结果1. SA概述1.1 SA介绍SA的提出:模拟退火算法最早的思想由Metropolies等(1953)提出,1983年Kirkpatrick等将其应用于组合优化。SA的目的:∙\bullet∙ 解决N原创 2021-08-03 13:08:17 · 2547 阅读 · 0 评论 -
【MATLAB】粒子群优化算法(PSO)求函数极值
目录1.PSO概述1.1基本思想1.2特点1.3算法介绍1.PSO概述1.1基本思想∙\bullet∙ 群体迭代,粒子在解空间(n维)追随最优的粒子进行搜索。∙\bullet∙ 粒子群算法的思想源于对鸟群捕食行为的研究。∙\bullet∙模拟鸟集群飞行觅食的行为,鸟之间通过集体的协作使群体达到最优目的。PSO基础:信息的社会共享1.2特点∙\bullet∙ 简单易行∙\bullet∙ 收敛速度快∙\bullet∙ 设置参数少1.3算法介绍主要思路:∙\bullet∙ 每个寻优问原创 2021-08-02 10:21:46 · 3506 阅读 · 5 评论 -
【遗传算法GA】--TSP旅行商问题(Python)
一.基础介绍遗传算法的来源、定义、特点见之前的文章【遗传算法GA】–计算函数最值(Python)。下面我们先来看本次需要实现的内容:我们随机生成一些城市的坐标,然后找一条最短路径通过所有城市。最重要的还是对染色体DNA的编码以及适应度函数的确定。对于本题来说可以先将所以城市进行编号,然后对这些编号进行排序,排好的顺序就是旅行的路线。对于适应度函数来说就是将路程加起来,总路程最小,适应度越高。参数:参数名称含义citys城市个数pc交叉概率pm变异概率原创 2021-07-20 15:31:14 · 5261 阅读 · 1 评论 -
【遗传算法GA】--句子配对(Python)
文章目录1.基础介绍2.分步实现3.完整代码4.结果截图1.基础介绍遗传算法的来源、定义、特点见之前的文章【遗传算法GA】–计算函数最值(Python)。下面我们先来介绍本次需要完成的任务:对于给定的一句英文,我们通过遗传算法让计算机自己还原出这句话。流程与之前相同,通过编码得到染色体,根据个体的适应度分别进行选择、交叉、变异,经过多次迭代之后得到最终结果。重点关注的问题:∙\bullet∙ 如何编码:由于给出的是英文字符,所以我们无法像之前一样通过0、1来编码。(事实上当对应的是数字原创 2021-07-19 18:55:46 · 527 阅读 · 2 评论 -
【遗传算法GA】--计算函数最值(Python)
文章目录1.遗传算法概述2.分步实现过程3.完整Python代码4.结果截图1.遗传算法概述对于遗传算法:遗传算法是一种用于解决最优化的搜索算法,也是进化算法的一种。取名遗传就是因为它借鉴了生物学中的一些概念,比如说遗传、变异、自然选择以及杂交等等。对于个体:遗传算法中的个体可以抽象为染色体,然后使得种群向更好的方向进化。一般来说,染色体可以用一系列0和1的串来表示,通常使用的也就是二进制表示法。对于进化:首先生成随机个体构成的种群,然后每个个体都有自己的适应度,基于适应度随机选择多个个体,然后通过原创 2021-07-19 14:46:56 · 14358 阅读 · 19 评论 -
最优化--牛顿法求解多元函数极值例题(python)
一.问题给定一个函数f(x)=60-10x1-4x2+x12+x22-x1x2,利用牛顿法求解该函数的最小值,需给出中间结果。二.python代码import numpy as npimport matplotlib.pyplot as plt#牛顿法求解f = 60-10*x1-4*x2+x1**2+2*x2**2-x1*x2的极值#原函数#建立点的列表并关联起来X1=np.arange(-50,50,0.1)X2=np.arange(-50,50,0.1)[x1,x2]=np.原创 2021-05-07 19:54:41 · 8022 阅读 · 0 评论 -
python实现黄金分割法
目录一.问题二.代码三.结果一.问题使用黄金分割法来计算二.代码#黄金分割法python求解PPT上第一个例题#因为函数要求解最大值而这个方法一般求解最小值所以把函数取负import numpy as npimport matplotlib.pyplot as pltrate = 0.618034def f(x): #求解体积函数公式,乘1.0将结果变为浮点数 return -1.0*x*(350-2*x)*(260-2*x) def tarceback(f,原创 2021-04-26 17:55:13 · 2419 阅读 · 5 评论 -
最优化--梯度下降法(python)
目录一.基础二.一元函数求解(1)代码(2)结果(3)分析三.二元函数求解(1)代码(2)结果一.基础梯度下降法是一个一阶最优化算法,它需要用到函数的一阶导数/偏导。如果要找到一个函数的局部极小值,我们必须向函数当前点对应梯度(导数/偏导)的反方向进行规定步长的点迭代搜索。比如 f’(x)>0 ,那么当前就处于递增区间,要向x减小的方向搜索。如果要找到一个函数的局部极大值,我们必须向函数当前点对应梯度(导数/偏导)的正方向进行规定步长的点迭代搜索。基本式子: xn+1 = xn原创 2021-04-27 21:33:46 · 4221 阅读 · 1 评论