Algorithm 初始解接近最优解的多元函数优化

Algorithm 初始解接近最优解的多元函数优化,algorithm,optimization,numerical,Algorithm,Optimization,Numerical,我想知道是否有人知道哪种算法可以用于我的情况。我已经在多元函数上运行了优化器,并找到了问题的解决方案,假设我的函数足够规则。我稍微扰动了这个问题,希望找到接近上一个解的最优解。在这种情况下,有没有非常快速的算法,或者我应该退回到常规算法。虽然我不太了解如何在这种能力下使用计算机,但我记得有一篇文章,在已知函数复杂性的情况下,使用神经进化技术相对有效地找到“最佳拟合”方程(线性、n次多项式、指数、对数等)和一组点图。我记得这是我们现在所知的计算神经进化的最早用途之一;因为函数的复杂性(以及术语的数

我想知道是否有人知道哪种算法可以用于我的情况。我已经在多元函数上运行了优化器,并找到了问题的解决方案,假设我的函数足够规则。我稍微扰动了这个问题,希望找到接近上一个解的最优解。在这种情况下,有没有非常快速的算法,或者我应该退回到常规算法。

虽然我不太了解如何在这种能力下使用计算机,但我记得有一篇文章,在已知函数复杂性的情况下,使用神经进化技术相对有效地找到“最佳拟合”方程(线性、n次多项式、指数、对数等)和一组点图。我记得这是我们现在所知的计算神经进化的最早用途之一;因为函数的复杂性(以及术语的数量)如果方程的参数已知且固定不变,则可以使用静态神经网络,并用最接近的值进行播种,然后“变异”通过启发式使新网络更接近具有高适应性的现有网络。使用多线程技术,许多网络可以并行创建、测试和评估。

虽然我对使用这种能力的计算机不太了解,但我记得有一篇文章使用神经进化技术来寻找“最佳匹配”在已知函数复杂度(线性、n次多项式、指数、对数等)和一组点图的情况下,方程相对有效。我记得这是我们现在所知的计算神经进化的最早用途之一;因为函数复杂度(以及术语数)如果方程的参数已知且固定不变,则可以使用静态神经网络,并用最接近的值进行播种,然后“变异”通过启发式使新网络更接近具有高适应性的现有网络。使用多线程,可以并行创建、测试和评估许多网络。

有一系列算法可用于查找方程的根。如果您知道根的大致位置,则有一些算法可使您在
ln n
时间或更好的情况下,快速关闭

一是

另一个是


请注意,这些算法适用于单变量函数,但可以扩展到多变量函数。

有一系列算法可用于查找方程的根。如果您知道根的大致位置,则有一些算法可使您在
ln
时间内或更好时间内任意闭合

一是

另一个是


请注意,这些算法适用于单变量函数,但可以扩展到多变量函数。

我们可能需要更多关于您的问题的信息;但由于您知道您接近正确的解决方案,并且如果导数易于计算,则是一个明智的选择,如果不是,则t可能有意义。

我们可能需要一个关于您的问题的更多信息;但由于您知道您接近正确的解决方案,并且如果导数易于计算,则是一个明智的选择,如果不是,则t可能有意义。

如果您已经有一个迭代优化器(例如,基于Powell的方向集方法,或CG),为什么不使用初始解决方案作为下一次运行优化器的起点

编辑:根据您的评论:如果计算雅可比矩阵或海森矩阵会给您带来性能问题,请尝试BFGS(http://en.wikipedia.org/wiki/BFGS_method),它完全避免了Hessian的计算;这里 你会发现BFGS的一个(非商业性的免费)实现。一个很好的细节描述

不要指望用一个不太复杂的算法找到你的初始解会得到什么


所以这都是关于无约束优化的。如果你需要关于约束优化的信息,我建议你用谷歌搜索“SQP”。

如果你已经有一个迭代优化器(例如,基于Powell的方向集方法,或CG),为什么不使用初始解决方案作为下一次运行优化器的起点

编辑:根据您的评论:如果计算雅可比矩阵或海森矩阵会给您带来性能问题,请尝试BFGS(http://en.wikipedia.org/wiki/BFGS_method),它完全避免了Hessian的计算;这里 你会发现BFGS的一个(非商业性的免费)实现。一个很好的细节描述

不要指望用一个不太复杂的算法找到你的初始解会得到什么

所以这就是无约束优化。如果你需要关于约束优化的信息,我建议你在谷歌上搜索“SQP”。

每个最小化算法都表现得更好(阅读:完全执行)如果你有一个好的初始猜测,那么扰动问题的初始猜测将是非扰动问题的最低点

然后,你必须明确你的要求:你想要速度。你想要什么精度?空间效率重要吗?最重要的是:你有什么信息:只有函数的值,或者你也有导数(可能是二阶导数)

关于这个问题的一些背景知识也会有所帮助。寻找一个已经离散的光滑函数与寻找数百个不相关的参数是非常不同的

全局信息(例如,函数是凸的,是否有一个保证的全局最小值或许多局部最小值等)可以暂时搁置。如果你很难找到扰动问题的最小点,这是你必须研究的问题

回答这些问题将允许我们选择一个特定的算法。多元优化有很多选择(和权衡)

而且,哪一个更快在很大程度上取决于问题