一、优化的过程
一个典型的工程设计优化过程如下图所示,可以简述为:
问题说明 -> 初始设计 -> 评估性能 -> 改进设计 -> 最终模型
The role of the designer is to provide a problem specification that details the parameters, constants, objetives, and constraints that are to be achieved.
对设计者来说,首先需要提供一个问题规范,详细说明要实现的参数,常量,目标和约束。
而优化算法就是 用于逐步改进设计,直到无法再对其进行改进或达到预算时间或成本为止。
使用优化进行设计面临着许多挑战:一般包括我们的计算资源 和 时间有限,因此我们的算法在探索设计方式上必须具有选择性。
二、基本的优化问题
数学优化问题 或者说 优化问题可以写成如下形式:
其中x表示为对应于不同设计变量的值的向量,第i个设计变量表示为xi。可写成x = [x1, x2, ..., xn]。
优化问题就是在约束条件下,调整此向量中的元素以最小化目标函数f。
对于一个最大化问题,同样可以转化为最小化函数的问题,只需在原目标函数f前加上负号来作为新的目标函数即可。所求最大值的相反数为新目标函数的最小值。
单变量问题可使用简单一阶导数、二阶倒数知识来寻找局部最小值。
多变量问题则使用更为复杂的判别方法和其他有效方式。
三、特殊的优化问题
关于优化问题的求解,不同算法的有效性(即我们用之求解优化问题的能力)是大不相同的,它取决于多方面因素,如目标函数和约束函数的形式。目前,即使目标函数和约束函数是光滑的(如多项式),一般形式的优化问题仍然很难求解。因此,求解一般形式的问题是需要付出一些代价的,如需要较长的计算时间或者可能找不到解。
然而,并不是所有的优化问题都难以求解。对于一些特殊的优化问题,存在一些有效的算法,这些算法对含有成百上千变量和约束的大型问题甚至都有效。两类重要且广为人知的例子是最小二乘问题和线性规划问题。此外,凸优化问题一样可以进行有效的求解。
参考书目:
Algorithms for Optimization (MIT Press). Authors: Mykel J. Kochenderfer and Tim A. Wheeler.
Convex Optimization. Authors: Stephen Boyd and Lieven Vandenberghe