优化算法知识和类库

基础知识

优化算法导论

https://vlight.me/2018/01/01/Introduction-to-Algorithms/
https://vlight.me/2018/05/14/Analysis-of-algorithms/
https://mealpy.readthedocs.io/en/latest/
https://github.com/MOEAFramework/MOEAFramework/blob/master/docs/listOfAlgorithms.md

启发式算法分类:

https://github.com/MOEAFramework/MOEAFramework/blob/master/docs/listOfAlgorithms.md
Multi-objective
    Classical - NSGA-II, MOEA/D, GDE3, PAES, PESA2, SPEA2, VEGA
    Epsilon-dominance - e-MOEA, e-NSGA-II
    Reference point / vector - NSGA-III, U-NSGA-III, DBEA, RVEA
    Particle swarm - OMOPSO, SMPSO
    Indicator based - IBEA, SMS-EMOA
    Other - AGE-MOEA-II, AMOSA, CMA-ES, MSOPS, RSO, Random
Single-objective - GA, ES, DE, SA, CMA-ES

线性回归 和 逻辑回归 和 支持向量机

https://vlight.me/2020/07/26/Machine-Learning-Models/

遗传算法

https://vlight.me/2018/06/10/Genetic-Algorithms/
https://www.tutorialspoint.com/genetic_algorithms/genetic_algorithms_quick_guide.htm

差分进化算法

https://vlight.me/2018/04/17/differential-evolution/
https://numerics.net/documentation/latest/reference/numerics.net.optimization.differentialevolutionstrategy
差分进化算法各算子的顺序和遗传算法不同, 具体为:
遗传算法顺序: **选择**(按照适应度选择父代,算法:轮盘赌、锦标赛选择) -> **交叉**(子代基因重组,比如单点交叉、均匀交叉)) -> **变异**(子代随机修改基因,如位翻转/高斯扰动) ->更新种群(如采用精英保留策略)
差分算法顺序:  **变异 Mutation**(生成变异向量,增加全局搜索能力) -> **交叉 CrossOver** (将变异向量和目标向量交叉生成实验向量) -> **选择 Selection **(比较实验向量和目标向量的适应度, 选择最优解)
变异:差分进化中变异用来生成变异向量, 而GA中的变异是对子代基因微调. 
交叉:差分进化中交叉是生成实验向量, 而GA中的交叉是基因重组. 
选择:差分进化中选择是采用一对一贪婪选择, 而GA中选择通常是基于概率(轮盘赌)和全局排序(竞标赛). 

类库

Java 类库

MOEAFramework: 集成了非常多算法
   https://github.com/MOEAFramework/MOEAFramework/blob/master/docs/listOfAlgorithms.md
jmetal: 集成了非常多算法
   https://github.com/jmetal/jmetal
jenetics: 主要是GA算法
    https://jenetics.io/
    https://jenetics.io/manual/manual-8.1.0.pdf
    https://github.com/jenetics/jenetics
    https://www.baeldung.com/jenetics

Python 类库

pymoo 集成了非常多算法  https://pymoo.org/
mealpy 集成了非常多算法  https://mealpy.readthedocs.io/  

C# 类库

GeneticSharp: 只提供GA算法  
   https://diegogiacomelli.com.br/function-optimization-with-geneticsharp/
   https://github.com/giacomelli/GeneticSharp
LibOptimization, 支持差分进化, 粒子群优化, 自适应JADE, 布谷鸟搜索  https://github.com/tomitomi3/LibOptimization
posted @ 2025-03-30 22:27  harrychinese  阅读(46)  评论(0)    收藏  举报