基礎(chǔ)知識
優(yōu)化算法導論
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
啟發(fā)式算法分類:
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
差分進化算法各算子的順序和遺傳算法不同, 具體為:
遺傳算法順序: **選擇**(按照適應(yīng)度選擇父代,算法:輪盤賭、錦標賽選擇) -> **交叉**(子代基因重組,比如單點交叉、均勻交叉)) -> **變異**(子代隨機修改基因,如位翻轉(zhuǎn)/高斯擾動) ->更新種群(如采用精英保留策略)
差分算法順序: **變異 Mutation**(生成變異向量,增加全局搜索能力) -> **交叉 CrossOver** (將變異向量和目標向量交叉生成實驗向量) -> **選擇 Selection **(比較實驗向量和目標向量的適應(yīng)度, 選擇最優(yōu)解)
變異:差分進化中變異用來生成變異向量, 而GA中的變異是對子代基因微調(diào).
交叉:差分進化中交叉是生成實驗向量, 而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, 支持差分進化, 粒子群優(yōu)化, 自適應(yīng)JADE, 布谷鳥搜索 https://github.com/tomitomi3/LibOptimization