
最优化算法
文章平均质量分 72
中南自动化学院至渝
好记性不如烂笔头,多写写
展开
-
快速非支配排序 python版
为每个个体 i=1->N:计算它支配的解集合spi,支配它的个数npi。 复杂度O(N)同时记录处于第一前沿的解集合F1(其实就是npi=0的解放在F1中) 这一大步复杂度 O(MN2)现在开始分配前沿,初始化当前前沿等级=1。现在F1中所有解都没有其他解可以支配他们。所以他们是当前的最前沿,分配好了,接下来就把F1中的所有解都处理一下,做如下操作 a、每个个体不都对应一个sp吗。遍历sp,对于每一个它支配的解x,我们把np-1(因为我们已经把这个解原创 2022-12-05 20:55:31 · 16596 阅读 · 5 评论 -
高效非支配排序ENS python版
我自己搞多目标的,看来一圈中文的ENS ,写的都是啥玩意儿呀,气死个人。花了一上午搞懂原理,然后一下午写完了python版的,当然写的很粗糙,可能还有很多可优化的点,遇到问题了在debug 这东西其实挺简单,因为很早我就会了二维的情况,本科找工作刷力扣的时候接触的,只是当时不知道叫这东西。力扣题目叫 游戏中弱角色的数量 ,只是力扣这题要求每个维度都严格小于,帕累托则是只要一个维度小于,其他的小于等于都行。对应到代码就是一个是 一个是. ENS 整个原创 2022-12-05 17:19:34 · 16383 阅读 · 4 评论 -
离散状态转移算法
2020年发表在自动化学报的论文《状态转移算法原理及应用》,对状态转移算法作了广泛而深入的介绍:自动化学报——状态转移算法原理与应用,感兴趣的可以看下论文 各种状态转移算法的源代码可以在中南大学周晓君教授的个人主页免费下载:中南大学周晓君教授,想要解决实际问题或者测试算法性能的同学请移步到此进行代码下载 基本状态转移算法可参见 状态转移算法 离散优化,又称为整数规划 (线性整数规划),决策变量全取整数值。是一类在实际生活中非常普遍且重要的问题。具体定义请参见原创 2022-06-02 15:09:11 · 15905 阅读 · 1 评论 -
离散状态转移算法(DSTA)python版实现
背景 所有的随机优化算法(GA、ABC、PSO、STA、模拟退火)都是一个套路通过当前的一个解或者一些产生一堆新的候选解,这一步叫产生候选解然后通过某个评价函数(评价标准)更新解,就是找一堆里面好的一个或者一些,这叫更新当前解不断循环,直到满足终止条件 可以先看看 连续状态转移算法(STA)的实现(python版)原创 2021-12-18 21:31:42 · 19193 阅读 · 0 评论 -
离散状态转移算法(DSTA)的一点尝试,随机多次左移算子测试(说实话,我感觉和一次的左移,区别不明显,有点点提升,但又好像没有)
背景 心血来潮,想到这个算子,就测试一下。灵感来自于原始DSTA中的平移算子,原始的有四个算子,大概如下思路 你能做一次左移,那我做两次不也可以吗,三次也可以嘛。又想到,干嘛在代码里面写死循环多少次呢,干脆随机次左移吧,次数不超过要移动序列的最大长度就行(主要是超过了其实就又循环回去了)文件结构代码otherli原创 2021-12-17 15:43:45 · 18816 阅读 · 0 评论 -
连续状态转移算法(STA)的实现(python版)
背景介绍 所有的随机优化算法(GA、ABC、PSO、STA、模拟退火)都是一个套路通过当前的一个解或者一些产生一堆新的候选解,这一步叫产生候选解然后通过某个评价函数(评价标准)更新解,就是找一堆里面好的一个或者一些不断循环,直到满足终止条件算子原创 2021-12-16 13:54:26 · 22235 阅读 · 0 评论 -
将连续状态转移算法中解直接取整用于离散优化问题的尝试(效果没有离散状态转移的好)
背景 起因是看到一篇文章说他用一些手段,映射函数队连续算法进行改变直接用在离散优化问题上,所以萌生了这种想法,但是效果不佳,我试了一下测试代码 otherlib 主要存了三个离散优化函数,这三个测试函数可以在这篇论文中找到 Discrete state transition algorithm for unconstrained integer原创 2021-12-14 15:02:08 · 21442 阅读 · 0 评论 -
状态转移算法
原文地址 状态转移算法 1 相关资源: 2020年发表在自动化学报的论文《状态转移算法原理及应用》,对状态转移算法作了广泛而深入的介绍:https://kns.cnki.net/kcms/detail/detail.aspxdbcode=CJFD&dbname=CJFDAUTO&filename=MOTO202011002&v=JCreBvAGjWhrT3giHVgvnnUsFc9转载 2021-08-17 10:19:53 · 25494 阅读 · 0 评论 -
有序数组的查询三种方法,二分,插值,斐波那契,我觉得这是最优化的知识,不是编程算法的,可能大家不分家吧
问题背景 给定一个有序数组nums,和一个待查找的数target,找到target的下标 最简单的是挨个遍历,这个时间复杂度太拉跨了,不讨论方法1----------二分法 每次都折半查找,找到就返回#include <algorithm>#include <iostr原创 2021-04-15 21:53:48 · 25482 阅读 · 0 评论 -
多目标 benchmark 函数
MOP系列MOP1:  原创 2020-09-01 23:24:36 · 26410 阅读 · 1 评论 -
无约束 benchmark 函数
随手记录下 12 个无约束 benchmark 函数 (1)Spherical函数 &nb原创 2020-09-01 19:07:59 · 26434 阅读 · 0 评论 -
最优化算法最速下降法、牛顿法、拟牛顿法 Python实现
只用到了numpy这一个库,只要安装有这个库应该都可以直接运行import numpy as npdef f(x): #目标函数 x1 = x[0] x2 = x[1] y = 100*((x2 - x1**2)**2) + (x1-1)**2 return ydef num_grad(x, h): #求梯度 df = np.zeros(x.size) for i in range(x.size): x1, x2 = x.原创 2020-06-22 10:47:31 · 28464 阅读 · 8 评论