标签:生物 一个用户 cto 生活 with 遗传算法 选项 eval 选择
优化问题广泛存在于我们的生活之中。当可利用的资源有限时,我们总想要用最有效率的方法来解决问题。从工程问题到科学研究,再到商业决策,都可以找到优化问题的影子。由此可见,优化问题是重要的。
当优化问题只拥有一个需要优化的目标时,就被称为单目标优化(Single-objective Optimisation)。这类问题的解决方法早在二战期间就已经被学者们进行研究。当优化问题具有多个需要优化的目标时,就被称为多目标优化(Multi-objective Optimisation)。事实上,我们的生活中广泛存在的优化问题大多是多目标优化。
不难看出,单目标优化是多目标优化的一个特例,多目标优化是单目标优化的广泛形式。但由于当时主流的优化算法的结构限制,人们常常将多目标优化转换为单目标优化后进行求解。这样的做法虽然在工程上是可行的,但很显然,它违背了我们对于多目标优化与单目标优化的关系的认识,即多目标优化是单目标优化的广泛形式。因此,将多目标优化看为单目标优化的简单延伸进行求解是片面的。
抛开对于广泛形式的认知,在工程学上我们也可以找到多目标优化与单目标优化根本的不同。考虑这样一个问题:
在学校附近租一间单身公寓,不妨只考虑两个方面:1)距离研究室的距离;2)租金。
很显然,距离研究室的距离越近越好,租金越低越好。有这样两间公寓:A距离研究室1.5公里,租金2000元/月;B距离研究室5公里,租金1500元/月。如果只考虑租金,那么毫无疑问,B是最佳选项。但是对于一个富有的学生,租金显然不是他需要考虑的。对于他来说,选择距离研究室更近的A会更为合理。由此看出,当我们同时考虑距离与租金时,A和B中没有一个是更好的。
我们收集更多的房间信息,画在下面的坐标系中。观察这两个目标(距离与租金)时,我们发现距离越近的房间,租金越贵。两个目标之间存在着某种制约关系(trade-off)。对于图中这些点,我们只能说他们谁也不比谁更好。由于目标之间制约关系的存在,在某一个目标上的优越表现只能是源于对另一个目标的牺牲。这样我们就得到了两种优化的根本性差异:由于目标之间制约关系的存在,多目标优化通常具有多个最优解;而单目标目的优化(除去多峰性优化问题)则只具有一个最优解。
求解多目标优化的两种方法
尽管多目标优化具有多个最优解,但是很显然,一个人一次通常只会选择一个解,就像你不会同时租两间房子。因此,在一个实际的多目标优化问题中,通常含有两个部分:1)求解出多个最优解;2)利用某种方法筛选出一个最优解。
另一种方法,事实上最早人们就是使用这种方法,这是将问题转化为单目标优化进行求解。这是因为,一直以来的优化方法在一次运行中只能得到一个解。显然,这在多目标优化中不适用。常用的转化方式是基于偏好(preference-based)设置各个目标的权重并求和。事实上,不难发现多目标优化的多个最优解通常就是使用不同偏好设置转化而得的单目标问题的最优解。
但是,在一个实际问题当中,我们很难衡量出准确的偏好;或者,尽管我们衡量出了偏好,但是对于另一个用户,这种偏好就不再合适了。因此,基于偏好的方法是不准确的,主观的。相反,如果可以确切地论证一组偏好地准确性以及广泛适用性,我们就不需要将问题当作是多目标优化问题。
约60年前,优化研究领域中诞生了重要的算法——进化计算。这是一种将生物进化过程加以建模,运用在优化问题上的方法(如:遗传算法)。与之前的优化算法相比,最大的不同在于,这是一种基于种群(拥有多个解的集团)的优化算法。
在单目标优化中,由于最优解只有一个,进化算法的种群中不同的个体将会收敛至同一个解,即全局最优解(理想状态下)。这一特征使得进化算法虽然拥有不易陷入局部最优的长处,但也被诟病为浪费了一定的计算资源。然而,在多目标优化中存在着多个最优解。因此,利用进化算法求解多目标优化时,不同的个体则会收敛至不同的最优解。与此同时,对于多目标优化问题而言,进化算法则可以在一次运行中获得多个解。多目标优化就这样与进化算法天然地结合在了一起。
注意到进化算法与多目标优化的良好相性,研究人员开发了一系列的进化算法。1984年,David Schaffer在他的博士论文中提出了vector-evaluated genetic algorithm(VEGA)。虽然在经过少许世代的运行后,VEGA可以得到一些制约的解,但是在经过大量世代的运行后,算法会收敛成为几个单独的最优解。1989年,David E. Goldberg利用了“优劣判定”的概念提出了短短10行的multiobjective evolutionary algorithm(MOEA)的描述。此后,研究者们基于MOEA提出了各种实现,如:MOGA,NSGA,NPGA,NSGA-II等。2007年,Zhang Qingfu提出了利用分解法的多目标进化算法MOEA/D。
Deb, Kalyanmoy. Multi-Objective Optimization Using Evolutionary Algorithms. John Wiley & Sons, Ltd, 2004.
Deb, Kalyanmoy, et al. "A fast and elitist multiobjective genetic algorithm: NSGA-II." IEEE transactions on evolutionary computation 6.2 (2002): 182-197.
Zhang, Qingfu, and Hui Li. "MOEA/D: A multiobjective evolutionary algorithm based on decomposition." IEEE Transactions on evolutionary computation 11.6 (2007): 712-731.
Multiobjective Optimisation with Evolutionary Algorithm - 1. 序言
标签:生物 一个用户 cto 生活 with 遗传算法 选项 eval 选择
原文地址:https://www.cnblogs.com/heyif/p/10925245.html