目录
无约束优化
一个优化问题可以写成最大化问题或者最小化问题,这两个问题在形式山很容易互相转换:
函数f(x)被称为目标函数,向量x被称为独立变量,或决策变量。x中的元素称为解的特征。x中元素的个数称为问题的维数。独立变量、决策变量或解的特征,这三个术语等价。
当要最小化一个函数时我们称此函数的值为费用,当想要最大化一个函数时我们称此函数的值为适应度。
约束优化
优化问题常常带有约束,即在最小化或者最大化某个函数f(x)时,对x可取的值有约束,如下面的例子:
实际的优化问题往往是带有约束的。在实际的优化问题中,使目标函数最优的独立变量的值也几乎总是出现在约束的边界上。
多目标优化
实际的问题不仅带有约束,还有多个目标,这意味着我们同时要优化的不止一个量。
上述问题是一个多目标优化问题,求f(x)和g(x)同时达到最小
f(x)和g(x)的图形及它们的最小值如上图所示,这两个目标互相冲突,我们不清楚对于这个问题最好的x是多少,一种方式是绘制g(x)作为函数f(x)的函数的图。如下图所示:
对实线上的x的值,找不到能同时使得g(x)和f(x)减小的x的其他值,此实线被称为帕累托前沿,而对应的x的值的集合被称为帕累托集。帕累托前沿给出了合理的选择的集合。
实际的优化问题常涉及两个以上的目标,因此很难得到它的帕累托前沿。即使得到了帕累托前沿,由于它是高维的,也无法将它可视化。
多峰优化
多峰优化问题是指问题又不止一个局部最小值。 考虑问题:
f(x,y)是二维Ackley函数它的函数图像如下所示,下图也常被称为适应度景观。可以通过求f(x,y)关于x和y的导数,然后求解找出局部最小值,但要解这个连立方程可能比较困难。
组合优化
有许多优化问题的独立变量只能在离散的集合上取值,这类问题被称为组合优化问题。
假设一位商人想访问4个城市并最终回到起点城市,这四个城市分别为A,B,C,D城,商人想以总旅行距离最短的方式访问分部,这个问题有6个可能的解:
这个问题被称为闭合的旅行商问题(Traveling Salesman Problem,TSP),当城市数量少时,很容易枚举出所有可能的解。搜索一个组合问题的所有可能的解被称为蛮力搜索,或穷举搜索。但是当有n个城市时,有(n-1)!个解,一个一个尝试不太现实。
像旅行商这样的问题没有连续的独立变量,因此不能利用导数求导求解。除非对每一个可能的解都尝试一遍,不然无法确定所得到的组合问题的解是否是最好的解,进化算法为找到好的解提供了一种强有力的方式。在进化算法中,潜在的解会互相分享信息最终达到最好解得共识。