1.8 概述
本节概述本书各章的内容。图1.9给出了各章之间概念的依赖关系。
图1.9 各章之间的依赖关系。颜色较浅的箭头表示弱依赖关系
第2章首先讨论导数及其多维推广。导数在许多算法中被用于选择搜索的最佳方向。通常导数很难通过分析得到,因此我们讨论如何从数值上求导(得出一个估算值)并使用自动微分技术。
第3章讨论包围,它涉及确定一元函数的局部极小值区间。不同的包围算法根据不同的函数使用不同的方案进行计算,以连续缩小间隔。我们讨论的方法之一,是使用函数中Lipschitz常数的知识来指导包围过程。这些包围算法通常作为本书稍后讨论的优化算法的子程序使用。
第4章介绍优化多元函数的一般方法——局部下降法。局部下降法就是迭代选择下降方向,然后沿该方向前进一步,重复该过程直到收敛或满足某终止条件。步长的选择有多种不同的方案。我们还将讨论将步长自适应地限制到对局部模型有利的区域内的方法。
第5章在前几章的基础上,讲述在通过梯度估计得到一阶信息后,如何使用其作为局部模型来获得下降方向。简单地沿着最陡的方向下降往往不是寻找极小值的最佳策略。本章将讨论多种策略,它们通过使用先前的梯度估算序列为搜索提供了更多的参考。
第6章介绍如何使用基于二阶近似的局部模型来获得局部下降。这些模型基于目标函数的黑塞矩阵估值。二阶近似的优点是通过它可以得到下降的方向和步长。
第7章提出一系列直接寻找最优解的方法,避免了使用梯度信息来获得搜索方向。我们首先讨论沿着一组方向迭代执行线搜索的方法。之后讨论模式搜索方法,这些方法不执行线搜索,而是沿着一组方向执行距离当前点一定步长的计算。随着搜索的进行,步长会逐渐调整。另一种是单纯形法,当它沿着明显的改进方向遍历设计空间时,单纯形会自适应地展开和收缩。最后讨论了一种基于利普希茨连续条件的方法,以提高可能包含全局极小值的区域的分辨能力。
第8章介绍随机方法,这是一种将随机性纳入优化过程的方法。我们将展示随机性如何改进前面章节中讨论的一些算法,如最速下降和模式搜索。一些方法涉及递增地遍历搜索空间,而其他方法则涉及在设计空间上学习概率分布,将更大的权重分配给更有可能包含最优解的区域。
第9章讨论使用点集合来探索设计空间的种群方法。通过大量在空间中分布的点可以帮助降低陷入局部极小值的风险。种群方法通常依靠随机性来提升群体的多样性,并可以与局部下降法相结合。
第10章介绍优化问题中约束的概念。我们首先讨论与约束优化问题相关的数学知识。之后介绍如何使用惩罚函数将约束条件引入之前提到的优化算法中。我们还将讨论从可行点开始,确保搜索仍然可行的方法。
第11章假设目标函数和约束都是线性的。线性似乎是一个强有力的假设,许多工程问题都可以被视为线性约束优化问题。已经开发出多种利用这种线性结构的方法。本章重点介绍单纯形法,该算法可以确保得到全局极小值。
第12章展示如何解决多目标优化问题,该问题中我们需要尝试同时对多个目标进行优化。工程通常涉及多个目标之间的权衡,并且通常不清楚如何确定不同目标的优先级。我们将讨论如何将多目标问题转换为标量目标函数,以使用前面章节中提到的算法。我们还将讨论用于寻找一组代表目标之间最佳权衡的设计要点的算法。
第13章讨论如何创建抽样计划,使其包含设计空间中的各点。设计空间中的随机抽样通常不能提供足够的覆盖范围。我们将讨论确保在每个设计维度上均匀覆盖的方法以及测量和优化空间覆盖的方法。此外,我们将讨论准随机序列,这种序列也可以用于生成抽样计划。
第14章介绍如何建立目标函数的代理模型。在一些问题中,评估目标函数的代价高昂,代理模型通常被用于解决这类问题。优化算法可以使用代理模型的评估值代替实际目标函数来改进设计。评估可以来自历史数据,也可以通过上一章介绍的抽样计划获得。我们将讨论不同类型的代理模型、如何将它们拟合到数据以及如何确定合适的代理模型。
第15章介绍概率代理模型,它可以对模型预测中的置信度进行量化。本章重点介绍一种特殊的替代模型——高斯过程,并展示如何使用高斯过程进行预测,如何将梯度测量和噪声相结合,以及如何利用数据计算高斯过程的一些控制参数。
第16章介绍如何使用上一章中的概率模型来进行代理优化。本章将概述几种用于选择设计点进行下一步评估的方法,还将讨论如何以安全的方式使用代理模型优化目标测量。
第17章放宽对前面章节中目标函数是设计变量的确定性函数的假设,解释如何在不确定性下进行优化。我们将讨论多种不同的方法来表示不确定性,包括基于集合和概率的方法,并解释如何转换问题以保证不确定性的稳健性。
第18章概述不确定性传播的方法,其中用已知的输入分布估计与输出分布相关的统计量。了解目标函数的输出分布对于不确定性下的优化非常重要。我们将讨论多种方法,一些基于数学概念,如蒙特卡罗、泰勒级数近似、正交多项式和高斯过程。它们的前提假设和估计效果各不相同。
第19章介绍如何解决空间中的设计变量被约束为离散型的问题。一种常见的方法是放宽变量是离散的假设,但这可能会导致设计不可行。另一种方法涉及逐渐添加线性约束,直到最佳点离散为止。本章还将讨论分支限界和动态规划方法,这两种方法均能确保最优性。本章还提到一种蚁群方法,该方法通常可以扩展出较大的设计空间,但不能保证最优性。
第20章讨论如何搜索由语法定义的表达式构成的设计空间。对于许多问题,变量的数量是未知的,例如对图形结构或计算机程序的优化。本章将着重概述一些算法,这些算法考虑了设计空间的语法结构,以使搜索更有效。
第21章介绍多学科设计优化。许多工程问题涉及多个学科之间的复杂交叉,并且独立地优化每个学科可能不会得到最佳解决方案。本章将讨论多种技术,利用多学科问题的结构来减少寻找良好设计所需的精力。
附录包含补充材料。附录A简要介绍Julia编程语言,并重点介绍本书所列出算法的概念。附录B介绍用于评估不同算法性能的各种测试函数。附录C包含本书优化方法推导和分析过程中使用的数学概念。