1. 引言
1.1. 逆优化问题的建模、应用与求解方法研究
给定一个优化问题及一个可行解,逆优化问题旨在通过对目标函数或约束条件中的参数进行最小化调整,使该给定可行解成为最优解[1]。逆优化问题的概念由Tarantola首次提出[2]。不失一般性,逆优化问题可表述如下[3]:设
为某一优化问题实例,其中
为可行解集合,
为预先给定的参数向量,则
可表示为
对于参数向量
,定义
为优化问题
的变体,即将
中的参数向量
替换为
,其表达式为:
(1)
给定期望最优解
,记
。基于
范数的逆优化问题,是要找到参数向量
,使得
最小,即:
(2)
其中,
表示向量
与向量
之间的
范数。
1.2. 逆优化的应用场景
逆优化具有广泛的应用场景,涵盖地球物理学、生产计划[4]、医学成像与医疗规划[5]、电力分配[6]、组合优化[7]等领域。Burton与Toint针对交通流和地震层析成像中的逆最短路径问题展开研究[8],使得逆优化问题受到广泛关注。近年来,路径分配[9]、迁移学习[10]、对抗神经网络[11]等领域的研究与工程应用发展迅速,且诸多问题可通过逆优化的形式求解:
在大规模路径分配中,需确保高优先级传输路径的通畅性[12],这一问题可转化为逆优化问题——通过设备升级或减少其他路径的路由分配量,以最小成本使给定路径成为最短路径[13];
在迁移学习(尤其是基于参数的迁移学习)中,需基于已训练模型对目标任务的参数进行训练[14] [15],而获取最优特征的过程可视为逆优化问题。
因此,研究者们针对各类优化问题的逆优化展开研究,包括组合优化[16]、整数规划[17]、混合整数规划[18]、凸规划[19]、线性规划[20]、可数无穷线性规划[21]等。
1.3. 优化问题的现有求解方法与挑战
对于参数向量
,若优化问题
具有线性可解性,或
可通过显式表达式表示[22] [23],则可通过分析与转化方程,采用传统优化方法求解,如序列二次规划法[24]、割平面法[25]、牛顿法[26]、罚函数法[27]、隐式规划法[28]等。此外,部分研究者将神经网络应用于逆优化问题求解[29] [30]。然而,当
为非线性函数时,最优解通常无法通过显式形式表示,传统优化方法可能无法得到满意解甚至失效,因此非线性逆优化问题的求解具有极大挑战性。其核心难点在于:需在
的约束下最小化
,但对于给定的参数向量
,难以判定其是否满足
这一条件。
1.4. 逆优化与相关优化问题的关联
当前,非线性逆优化研究仍处于起步阶段。逆优化可被理解为一类约束优化问题[31]——在
为参数
对应的优化问题最优解这一约束下,最小化参数向量
与
之间的距离,但逆优化问题与一般约束优化问题存在本质差异。在一般约束优化中,可通过显式约束函数直接计算解对约束的违反程度;而逆优化问题中,其决策变量约束缺乏显式函数表达式,需通过额外的优化问题判断决策变量是否满足约束条件,因此逆优化问题的求解难度更大。
从优化过程来看,逆优化与双层优化存在一定相似性[32]。在双层优化中,为评估给定上层决策变量对应的上层目标函数值,需先求解其对应的下层优化问题,这一点与逆优化问题类似。但二者的关联仅局限于逆优化问题中参数向量
的搜索空间——因为逆优化中参数向量
的最优解已给定为
,需搜索满足
的参数向量
,以实现
最小化。近年来,进化算法在约束优化[33] [34]与双层优化[35] [36]领域取得了显著成效,为逆优化问题的求解提供了新思路。
2. 主要成果
所提逆优化进化算法
本文提出了一种逆优化进化算法。首先,该算法随机初始化一组不同的参数向量,形成基于参数的种群。每个参数向量d对应一个优化子问题P(d),并拥有一个解,从而形成基于解的种群。参数向量相似的两个优化子问题通常具有相似的最优解[37]。因此,针对每个参数向量,根据这些参数向量之间的距离定义一个邻域。可以像文献[37]中那样,利用其邻域解的信息来协同提高搜索效率。
综上所述,本文的主要贡献如下:
提出了一种嵌套进化逆优化算法。它将逆优化问题表述为一个带约束的多目标问题。
所提出的算法用于求解给定最短路径的逆最短路径问题。
3. 关键实现技术
3.1. 算法框架
所提算法的伪代码如算法1所示。它包含两个种群:基于参数的种群(P)和基于解的种群X。具体来说,我们在参数域内随机生成N个不同的参数向量,以形成
,根据这些参数向量定义了N个优化子问题。第i个子问题
是由参数向量
确定的优化问题,它可以是线性的、非线性的,甚至是多峰的。同时,在变量x的域X中随机生成
个初始解。每个子问题
根据
的值从初始解中选择一个最佳解,以形成初始解种群
。我们将在4.2中参数的种群的更新策略,在4.3中描述解的种群的更新策略。
算法1. 所提逆优化算法总框架
输入:
:每个参数向量的邻域数量
:参数向量的数量
:最大迭代代数
:更新X时的最大迭代次数
:由参数向量
确定的优化问题
:参数种群的更新比例 输出:
1.
2. 分别初始化参数种群
和解种群
,其中包含
个不同的参数向量和解 3. WHILE
4. FOR
到
5. 从
中随机选取
和
,通过公式3生成新的参数向量
6. 根据
的值,从
中为
选取一个最优解
7.
,
8.
,
9. 设定
为与
最接近的
个参数向量的索引,
,
10. WHILE
11. FOR
12. 通过变异算子4和交叉算子5生成解
13. FOR
14. IF
15.
16.
17. 通过算法2对种群
执行环境选择操作 18.
|
3.2. 参数种群更新
对于每个参数向量,求解其对应的子问题都非常复杂。因此,我们的算法无法保证精确得到最优解。所以,直接使用进化算法得到的当前解
来更新不合格的参数向量是不合理的。因为一个错解很可能会使种群的多样性迅速丧失,从而导致局部收敛。为此,本文利用子问题的求解信息设计了一种温和的参数向量更新策略。所提算法的伪代码如算法2所示。
算法2. 更新参数种群
输入:
:给定的可行解
:指定的参数向量
:参数向量列表
:参数向量对应的当前解列表 输出:
1. 通过公式3计算
中每个个体的
、
值 2. 根据
值对种群个体进行升序排序 3.
,
4. For
到
5. If
且
6.
7. ELSE 8. Break 9. FOR
到1 10. IF
11.
12. ELSE 13. Break 14. 从
和
中移除
的参数向量及其对应的当前解 15. 根据
,通过非支配排序选取$N$个最优的参数向量 |
我们将参数向量的更新任务划分为以下双目标任务:
(3)
特别是,我们只取
所在的点。我们提出的算法中的更新参数向量主要分为三个步骤:
Figure 1. Update the parameter vector with a larger
value and a lower dominance of
图1. 使用更大的
值和更低的
来更新参数向量
其中
、
、
是从所有群体中随机选取的不同参数向量。
是
参数向量的变异个体。
计算保护集P:我们将选择一些条件优良的参数向量进行保护。保护集P中的参数向量不会被更新。计算保护集有两种情况:
计算参数向量,使得当前解
与
之间的距离小于
。然后选择
个具有最小
值的个体,将它们的索引放入保护集P中。
当计算出的保护集种群数量如果上一步中的值小于
,我们需要计算出
参数向量来补充受保护集合。计算出
个具有最小
值的参数向量d,并将它们的索引放入待保护集合P中。
在算法初始阶段,该算法无法精确求解子问题,但它通过保护特定个体来确保种群的多样性。保护集是动态计算的,由于保护集的存在,当前解不合格的个体不会误导参数向量的进化方向。在更新当前解信息两三代后,当前解不合格的参数向量将被剔除,而更优的参数向量将被加入保护集。
计算待更新集合T:我们选择P中个体之外的待更新个体,如图1所示,所选对象主要包含两部分:
具有最大
值的个体
是那些支配等级
处于最低水平的个体。其中
和
。
如图1所示,选择具有最低非支配水平
的
参数向量进行更新,能够使目标更快地逼近帕累托前沿。选择具有最低
的
参数向量,可使优化目标点移动到帕累托前沿中的
点。
根据P和T更新参数向量:我们将更新集合T中描述的所有参数向量,因为我们无法有效判断更新后的参数向量会更好。因此,只有一部分参数向量会被添加到T中,以持续探索参数向量的优化方向。为了更新参数向量
,其突变体生成如下:
(4)
其中
、
、
是从所有种群中随机选取的不同参数向量。
是参数向量
的突变个体。突变后,我们执行以下操作,将
突变体的
组件与
参数向量进行交叉。
(5)
最后,我们直接更新参数向量
。
3.3. 当前最优解的更新
当前解的准确性对参数向量的更新有着重要影响。我们为反优化问题设计了合适的当前解更新策略。计算任意两个参数向量之间的欧氏距离,以找出每个参数向量的k个最近邻参数向量。然后,该算法利用邻居的信息来更新当前解。
不同的参数向量决定不同的子问题,且每次参数向量更新时,其当前的解将相应更新。根据文献[37]中的经验,彼此接近的参数向量将具有相近的最优解。每个当前解将获取相似参数向量的当前解信息以进行更新。在所提算法的每次运行中,参数向量的当前解将通过改进的差分进化算子进行进化,其流程如下。
根据相似参数向量的信息,每个参数向量的当前解将执行以下变异算子以生成不同的变异个体。
(6)
其中
、
、
是从与需要更新解的参数向量相似的参数向量中随机选取的不同参数向量的解。
是第i个解的变异体。R是在区间
内随机生成的实数。
是算子的缩放因子,
是给定的初始可行解。请注意,在我们的设计中有两个变异体,这使得算法能够在快速识别满足条件
的参数向量的同时保持多样性。突变后,参数向量的当前解将以
的概率对突变个体进行交叉交换。
维的
新突变个体
生成如下:
(7)
交叉后,通过比较原始当前解和变异体的函数值,将生成参数向量
的新当前解更新如下:
(8)
需要注意的是,当前解的总数始终与候选参数向量的数量一致。使用两种不同变异算子的目的是探究
是否有潜力满足
。两种变异体都会执行上述算子,但在执行算子7后,只会留下一个当前解。
3.4. 讨论
1) 设置保护集P和待更新集T的目的是:在参数向量的每次迭代后,将使用进化算法继续评估新参数向量的当前解。然而,对于复杂的目标优化问题,进化算法可能无法在短时间内为每个参数向量求出最优解。因此,对于参数向量的每次迭代,我们可以通过制定温和的进化策略来保留和更新参数向量,这能确保参数向量的进化方向正确。
2) 确保种群的多样性:该算法的多样性主要取决于差分进化算子。所提出的算法为进化算法提供了一个框架。具有更强搜索能力和更好多样性的算子可以替代本文中的差分进化算子,以提高所提算法的效率。
3) 在集合T的计算中使用非支配排序的目的:逆优化问题是一种特殊的双目标优化问题。所提出的算法采用非支配排序能够使参数向量的目标函数快速接近帕累托前沿。
4) 使用相似参数向量的当前解来更新当前解的目的:具有相似参数向量的目标优化问题具有相似的全局最优解,这可以有效减少最优解的搜索时间。
4. 在逆最短路径优化中的应用
在路径分配任务或机器人路径规划任务中,我们常常需要以较低成本改造设施,以确保主路径的最优性。这可以建模为反向最短路径优化问题。也就是说,尽可能小程度地变动图上的边,使预定路径成为可能的最短路径。我们在反向最短路径优化问题的应用中测试了我们的算法。在图2所示的理想最短路径1→4→8→12→16→20→25的情况下,它可能是也可能不是该图的最短路径。我们需要通过最小改变,使这条路径成为最短路径。重量
,
。
Figure 2. A graph of 25 nodes for inverse shortest path search
图2. 用于反向最短路径搜索的25节点图
当给定初始最短路径及其权重c时,逆优化问题可表示为:
尽管经典最短路径问题本身为线性可解问题,但其对应的逆优化模型在本文框架下呈现出显著的非线性特征。具体而言,逆最短路径问题要求在参数空间中搜索一组边权,使得给定路径在全路径集合中成为最优解。该条件并不能通过有限个线性约束或KKT条件显式刻画,而需通过反复求解底层最短路径问题来判定,其可行性约束本质上是隐式且高度非线性的。
在本文所采用的嵌套进化框架中,参数向量与其对应子问题最优解之间形成复杂的非线性映射关系;同时,参数更新过程需在“给定路径为全局最优解”这一隐式约束下进行搜索,使得整个逆优化过程构成一个典型的非线性逆优化问题。
我们在分别具有7个、15个和25个连接点的图上进行了30组不同的独立实验,每组实验迭代1000次。实验结果列于表一中。我们计算了不同条件下最优权重与初始权重之间的欧氏距离。为了进行比较,我们还计算了传统编程方法的初始权重与最优权重之间的欧氏距离。传统方法指基于KKT条件与对偶理论的经典逆最短路径算法,该方法通过显式构造最优性条件并求解相应线性规划模型获得参数解。
需要指出的是,在逆优化问题中,底层优化问题的全局最优解通常无法显式获得,因此传统意义下的最优性间隙难以直接计算。为此,本文采用基于搜索的最优性违反度作为替代指标:通过在当前参数下求解底层优化问题,比较给定解与搜索到的最优解之间的目标函数差值,以评估给定解的最优性满足程度。在逆最短路径问题中,该指标可通过计算给定路径长度与当前参数下最短路径长度之间的差值获得(表1,图3)。
Table 1. Performance of the algorithm under different node numbers and feasible initial paths
表1. 算法在不同节点数量和可行初始路径下的性能
点的个数 |
最小值 |
平均值 |
传统方法 |
最优性违反度 |
7 |
0.347 |
0.359 |
2.236 |
0.031 |
15 |
1.716 |
1.733 |
4.472 |
0.075 |
25 |
2.978 |
3.162 |
5.809 |
0.115 |
结果表明,所提出的算法在逆最短路优化应用中表现良好。与经典图论算法相比,该算法在欧氏空间中能够实现更低的成本。这意味着所提出的算法完全能够胜任逆最短路优化问题。我们可以得出结论,该算法在逆最短路优化应用中具有良好的潜力。
5. 结论
本文围绕非线性逆优化问题的建模与求解展开深入研究,系统梳理了逆优化问题的定义、应用场景及现有方法的局限性,明确其核心难点在于约束条件缺乏显式表达式、参数可行性判定困难。为此,提出的嵌套进化逆优化算法创新性地融合了双种群进化、邻域协同搜索、动态种群筛选等机制,有效解决了传统方法在非线性场景下的求解瓶颈。
Figure 3. Performance of our proposed algorithm in inverse shortest path problem with different number of nodes
图3. 算法在不同节点数量的反向最短路径问题中的性能
算法通过参数种群与解种群的协同进化,利用相似参数向量对应子问题最优解相近的特性,缩短了搜索时间;保护集的设置保障了种群多样性,避免局部收敛,待更新集结合非支配排序则加速了优化目标的逼近。在逆最短路径问题的验证中,算法在不同规模节点图上均表现出更优的性能,相较于传统方法能以更小的参数调整成本实现预定路径的最优性,充分证明了算法的有效性与实用性。
该研究不仅丰富了非线性逆优化问题的求解方法体系,为进化算法在逆优化领域的应用提供了新思路,其提出的算法框架还可通过替换更高效的搜索算子进一步拓展性能,在更多复杂工程与科学计算场景中具有广阔的应用前景。
NOTES
*通讯作者。