最优化算法不仅在机器学习目标函数优化方面有着举足轻重的地位,而且在运筹学、管理学领域也有着广泛的应用,本文笔者就带领着大家介绍一下并给出一个实列。
最优化算法,大家最熟悉的就是在学校学习的一些数学解法,当函数过于复杂时,数学解法不能给出最优解,甚至无法给出解时,就发展出了启发式算法,在启发式算法中,又有分为很多类别,最常见的应该就是遗传算法了。
现实中目标函数常常不是单个,而是多个的(如下图),此时数学解法效果就不太好了。此时,启发式算法就可以派上用场,而且针对多目标问题,遗传算法NSGA-II (Non-dominated Sorting Genetic Algorithm II)就可以很好的解决这个问题。
那么我们如何通过编程解决上图这个多目标优化的问题呢?
- 首先我们引入包 pymoo
- 定义目标函数
- 定义遗传算法NSGA-II 参数
- 解决并输出结果
1. Pip install pymoo
2. 定义目标函数
-
import nump