优化技术是一种以数学为基础,用于求解各种工程问题优化解的应用技术。归纳而言,最优化问题分为函数优化问题和组合优化问题两大类,其中函数优化的对象是一定区间的连续变量,而组合优化的对象则是解空间中的离散状态。
一、函数优化问题
函数优化问题通常可描述为:令
S
为
算法的性能比较通常是基于一些称为Benchmark的典型问题展开的,常用的BenchMark问题如下:
(1)Sphere Model
其最优状态和最优值为 min(f 1 (X ∗ ))=f 1 (0,0,...,0)=0 ,图像如下:
(2)Schwefel’s Problem 2.22
其最优状态和最优值为 min(f 2 (X ∗ ))=f 2 (0,0,0...,0)=0 ,图像如下:
(3)Schwefel’s Problem 1.2
其最优状态和最优值为 min(f 3 (X ∗ ))=f 3 (0,0,0,...,0)=0 ,图像如下:
(4)Schwefel’s Problem 2.21
其最优状态和最优值为 min(f 4 (X ∗ ))=f 4 (0,0,0,...,0)=0 ,图像如下:
(5)Generalized Rosenbrock’s Function
其最优状态和最优值为 min(f 5 (X ∗ ))=f 5 (1,1,1,...,1)=0 ,图像如下:
鉴于许多工程问题存在约束条件,受约束函数的优化问题也一直是优化领域关注的主要对象。常用的受约束测试函数包括:
(1) ming 1 (X)=5∑ 4 i=1 (x i −x 2 i )−∑ 13 i=5 x i ,约束条件为:
2x 1 +2x 2 +x 10 +x 11 ≤10
2x 1 +2x 3 +x 10 +x 11 ≤10
2x 2 +2x 3 +x 11 +x 12 ≤10
−8x 1 +x 10 ≤0
−8x 2 +x 11 ≤0
−8x 3 +x12≤0
−2x 4 −x 5 +x 10 ≤0
−2x 6 −x 7 +x 11 ≤0
−2x 8 −x 9 +x 12 ≤0
0≤x i ≤1,i=1,2,....,9,13
0≤x i ≤100,i=10,11,12
其全局最优点和最优值为 g 1 (X ∗ )=g 1 (1,1,1,1,1,1,1,1,1,3,3,3,1)=1
(2) maxg 2 (X)=(n √ ) n ∏ n i=1 x i ,约束条件为:
其全局最优点和最优值为:
(3) ming 3 (X)=(x 1 −10) 3 +(x 2 −20) 3 ,约束条件为:
其已知最优点和最优值为:
对于受约束问题,除了局部极小解的存在,影响最优化性能的因素主要包括:
(1)目标函数所对应曲面的拓扑性质,比如在相同约束下,线性或凸函数比无规律的函数要容易求解。
(2)可行区域的疏密程度,通常以可行区域占整个搜索空间的比值来度量,同时,约束在可行区域边界上的变化强度与惩罚项的确定也大有关系。
(3)采用惩罚的方法来处理约束越界问题。这种方法比较通用,适当选择惩罚函数的形式可得到较好的结果。比如采用罚函数:
因此对函数优化的讨论通常以无约束问题为主。
二、组合优化问题
组合优化问题通常可描述为:令 Ω={s 1 ,s 2 ,...,s n } 为所有状态构成的解空间, C(s i ) 为状态 s i 对应的目标函数值,要求寻找最优解 s ∗ ,使得 ∀s i ∈Ω,C(s ∗ )=minC(s i ) .组合优化往往涉及排序、分类、筛选等问题,它是运筹学的一个分支。
典型的组合优化问题有旅行商(Traveling salesman problem,TSP)问题、加工调度问题(Scheduling problem,如Flow-shop,Job-shop)、0-1背包问题(Knapsack problem)、装箱问题(Bin packing problem)、图着色问题(Graph coloring problem)、聚类问题(Clustering problem)等。
(1)旅行商问题
给定
n
个城市和两两城市之间的距离,要求确定一条经过各城市当且仅当一次的最短路径。其图论描述为:给定图
(2)加工调度问题
Job-shop问题是一类较TSP更为复杂的典型加工调度问题,是许多实际问题的简化模型。一个Job-shop可描述为:
n
个工件在
(3)0-1背包问题
对于
n
个体积分别为
(4)装箱问题
如何以个数最少的尺寸为
(5)图着色问题
对于
n
个顶点的无环图
(6)聚类问题
m
维空间上的
最小,其中 R p 为第 p 类中的点数。
显然,上述问题描述均非常简单,并且有很强的工程代表性,但最优化求解很困难,其主要原因是所谓的“组合爆炸”。比如,聚类问题的可能划分方式有
(3)优化算法及其分类
所谓优化算法,其实就是一种搜索过程或规则,它是基于某种思想和机制,通过一定的途径或规则来得到满足用户要求的问题的解。
就优化机制与行为而分,目前工程中常用的优化算法主要可分为:经典算法、构造型算法、改进型算法,基于系统动态演化的算法和混合型算法等。
1)经典算法。包括线性规划、动态规划、整数规划和分支定界法等运筹学中的传统算法,其算法计算复杂性一般很大,只适合于求解小规模问题,在工程中往往不实用。
2)构造型算法。用构造的方法快速建立问题的解,通常算法的优化质量差,难以满足工程需要。比如调度问题中的典型构造方法有:Johnson法、Palmer法、Gupta法、CDS法、Daunenbring的快速接近法、NEH法等
3)改进型算法,或称领域搜索算法。从任一解出发,对其领域的不断搜索和当前解的替换来实现优化。根据搜索行为,它又可分为局部搜索法和指导性搜索法。
- 局部搜索法。以局部优化策略在当前解的领域中贪婪搜索,如只接受优于当前解的状态作为下一当前解的爬山法;接受当前邻域中的最好解作为下一当前解的最陡下降法等
- 指导性搜索法。利用一些指导规则来指导整个解空间中优良解的探索,如SA、GA、EP、ES和TS等
4)基于系统动态演化的方法。将优化过程转化为系统动态的演化过程,基于系统动态的演化来实现优化,如神经网络和混沌搜索等。
5)混合型算法。指上述各算法从结构或操作上相混合而产生的各类算法。
优化算法当然还可以从别的角度进行分类,如确定性算法和不确定性算法,局部优化算法和全局优化算法等。
(4)邻域函数与局部搜索
邻域函数是优化中的一个重要概念,其作用就是指导如何由一个(组)解来产生一个(组)新的解。邻域函数的设计往往依赖于问题的特性和解的表达方式(编码)。由于优化状态表征方式的不同,函数优化与组合优化中的邻域函数的具体方式明显存在差异。
函数优化中邻域函数的概念比较直观,利用距离的概念通过附加扰动来构造邻域函数是最常用的方式,如
x ′ =x+ηξ
,其中
x ′
为新解,
x
为旧解,
在组合优化中,传统的距离概念显然不再适用,但其基本思想仍旧是通过一个解产生另一个解。下面对邻域函数给出一般性定义,并以TSP为例进行解释。
定义1 令(
S,F,f
)为一个组合优化问题,其中
S
为所有解构成的状态空间,
通常,TSP问题的解可用置换排列来表示,如排列(1,2,3,4)可表示4个城市TSP的一个解,即旅行顺序为1,2,3,4.那么,
k
个点交换就可认为是一种邻域函数。比如,不考虑由解的方向性和循环性引起的重复性,上述排列的2点交换对应的邻域函数将产生新解(2,1,3,4)、(3,2,1,4)、(4,2,3,1)、(1,3,2,4)、(1,4,3,2)、(1,2,4,3)。
基于邻域函数的概念,就可以对局部极小和全局极小进行定义。
定义2 若
局部搜索算法是基于贪婪思想利用邻域函数进行搜索的,它通常可描述为:从一个初始解出发,利用邻域函数持续的在当前解的邻域中搜索比它好的解,若能够找到如此的解,就以之称为新的当前解,然后重复上述过程,否则结束搜索过程,并以当前解作为最终解。可见,局部搜索算法尽管具有通用易实现的特点,但搜索性能完全依赖于邻域函数和初始解,领域函数设计不当或初值选取不合适,则算法最终的性能将会很差。同时,贪婪思想无疑将使算法丧失全局优化的能力,也即算法在搜索过程中无法避免陷入局部极小。因此,若不在搜索策略上进行改进,那么要实现全局优化,局部搜索算法采用的邻域函数必须是“完全的”,即邻域函数将导致解的完全枚举,而这在大多数情况下是无法实现的,而且穷举的方法对于大规模问题在搜索时间上是不允许的。
鉴于局部搜索算法的上述缺点,智能优化算法,如模拟退火算法、遗传算法、禁忌搜索、神经网络优化算法和混沌搜索等,从不同的角度利用不同的搜索机制和策略实现对局部搜索算法的改进,来取得较好的全局优化性能。