可以使用动态规划的非线性全局优化算法

计算科学 优化 非线性规划 动态规划
2021-12-25 20:21:49

两周前我在stackoverflow上问过这个问题,但是,从零回复来看,那可能是错误的论坛。因此在这里复制它:

让我们F0,...,Fn成为带参数的函数p0,...,pnG成为一个复合函数。说,对于n=3 G(x)=F3(p3,F2(p2,F1(p1,F0(p0,x))))

我想p0,...,pn通过尽可能少的函数调用来全局优化参数。有几种优化方法:

1) 忽略sG的组合Fi,将其视为带参数的黑盒p0,...,pn,并使用任何通用全局优化器。

2)分层优化;为清楚起见,我们假设n=3

循环 A:冻结参数p0,p1,p2并单独优化p3因为G仅取决于p3具有冻结参数的先前函数的输出和我只需要评估F3other Fs 的输出在迭代之间不会改变。

循环B:冻结参数p0,p1,改变p2,重复上述循环A。重复优化p2

循环C:冻结p0,改变p1,重复循环B,从而优化p1

循环 D:很明显。

这种“动态编程”方法将G通过减少迭代来实现优化。我有几个问题:

首先,我不确定这种分层优化方法是否会导致与通用“黑盒”方法质量相同的解决方案。是否对分层优化与黑盒优化产生的结果质量进行了任何研究?

其次,是否有任何可用的优化包支持这样的分层优化?我知道一些可用的通用黑盒优化器(NLOpt 等),但不是通用分层优化器。

0个回答
没有发现任何回复~