Questions tagged «optimization»

该标签用于询问有关(约束或无约束)函数最小化或最大化的方法的问题。

17
是否有适用于Python的高质量非线性编程求解器?
我要解决几个具有挑战性的非凸全局优化问题。目前,我使用了MATLAB的Optimization Toolbox(特别是fmincon()使用algorithm = 'sqp'),它非常有效。但是,我的大部分代码是在Python中进行的,我也想在Python中进行优化。是否存在可以与Python绑定竞争的NLP求解器fmincon()?它必须 能够处理非线性等式和不等式约束 不需要用户提供雅可比行列式。 如果不保证全局最优(fmincon()没有),也可以。我正在寻找一种即使在遇到挑战性问题时也可以收敛到局部最优的东西,即使它比慢一些fmincon()。 我尝试了OpenOpt提供的几种求解器,发现它们不如MATLAB的fmincon/sqp。 只是为了强调,我已经有了一个易于处理的公式和一个好的求解器。我的目标仅仅是更改语言,以使工作流程更加简化。 Geoff指出问题的某些特征可能是相关的。他们是: 10-400个决策变量 4-100个多项式相等约束(多项式范围从1到大约8) 有理不等式约束的数量大约等于决策变量数量的两倍 目标函数是决策变量之一 等式约束的雅可比行列是密集的,不等式约束的雅可比行列是密集的。

3
BFGS与共轭梯度法
在BFGS和共轭梯度之间进行优化时,应该考虑哪些因素?我试图适合这些变量的函数是指数函数。但是,实际的目标功能除其他外还涉及集成,如果有帮助的话,则成本很高。

8
用于约束优化的软件包?
我正在寻找解决约束优化问题的方法,在该方法中我知道某些变量(特别是盒装约束)的界限。 argminuf(u,x)arg⁡minuf(u,x) \arg \min_u f(u,x) 服从 c(u,x)=0c(u,x)=0 c(u,x) = 0 a≤d(u,x)≤ba≤d(u,x)≤b a \le d(u,x) \le b 其中uuu是设计变量的向量,xxx是状态变量的向量,c(u,x)c(u,x)c(u,x)是等式约束(通常是PDE)。上下约束aaa和bbb可以在空间上变化。 哪些软件包可以处理这种形式的系统?

3
为什么非凸性是优化中的问题?
当我开始阅读一般关于非凸优化的文章时,我感到非常惊讶,并且看到如下语句: 许多重要的实际问题都是非凸性的,大多数非凸性问题很难(如果不是不可能)在合理的时间内准确解决。(来源) 要么 通常,很难找到局部最小值,许多算法可能会陷入困境。(来源) 我每天都在进行某种非凸优化-即放松分子几何。我从来没有考虑过棘手,缓慢并且容易卡住。在这种情况下,我们显然具有多维非凸曲面(> 1000自由度)。我们主要使用源自最陡下降和动态淬火的一阶技术,例如FIRE,它们以几百步的速度收敛到局部最小值(小于自由度数)。我希望,除了随机噪声外,它还必须像地狱般坚固。(全局优化是另一回事) 我莫名其妙地无法想象势能表面会是什么样子,从而使这些优化方法陷入困境或缓慢收敛。例如,这种螺旋结构是非常病理性的PES(但不是由于非凸性所致),但这并不是一个大问题。您能举例说明病理性非凸PES吗​​? 因此,我不想与上面的引号争论。相反,我感觉到我在这里缺少一些东西。也许是上下文。

3
众所周知,一些优化问题等同于时间步长吗?
给定所需的状态和正则化参数,请考虑以下问题:找到状态和控件以最小化功能 受约束 \ begin {equation} Ay = u。\ end {equation} 在这里,为简单起见,我们可以考虑y,y_0,u \ in \ mathbb R ^ n和A \ in \ mathbb R ^ {n \ times n}。y0y0y_0β∈Rβ∈R\beta \in \mathbb Ryyyuuu12∥y−y0∥2+β2∥u∥212‖y−y0‖2+β2‖u‖2\begin{equation} \frac{1}{2} \| y - y_0 \|^2 + \frac{\beta}{2} \| u \|^2 \end{equation}Ay=u.Ay=u.\begin{equation} Ay = u. \end{equation}y,y0,u∈Rny,y0,u∈Rn y, y_0, u …

3
在GPU上解决无约束的非线性优化问题
我正在尝试解决GPU(CUDA)上的一些不受约束的非线性优化问题。 目标函数是一个平滑的非线性函数,其梯度在分析上相对便宜,因此我无需理会数值逼近。 我想通过大多数fp32数学运算来解决此问题(由于各种原因),那么哪种非线性优化方法对舍入误差更鲁棒,同时又具有良好的性能?(例如共轭梯度/准牛顿/信任区域),有人在GPU上尝试过BFGS并获得良好结果吗? 顺便说一句,如果需要的话,Hessian相对较小(通常小于64x64),但是我需要同时解决数千个此类小规模优化问题。

5
寻找平滑,有界,非凸的2D函数的全局最小值,该最小值估计成本很高
我有一个有界的非凸二维函数,我想找到它的最小值。功能相当流畅。评估成本很高。每个轴上可接受的误差约为功能域的3%。 我尝试在NLOPT库中运行DIRECT算法的实现,但是就所需精度所需的功能评估数量而言,它没有在蛮力搜索上带来可观的改进,并且存在一些异常值。 我应该考虑其他哪些全局优化求解器?

3

6
线性程序中涉及
假设 最小Av È Ç(Û)受 U我,Ĵ≤ 最大{ U我,ķ,Uķ ,Ĵ} ,i ,j ,k = 1 ,… ,nminAvec(U)subject to Ui,j≤max{Ui,k,Uk,j},i,j,k=1,…,n\begin{align*} \min A &\mathrm{vec}(U) \\ &\text{subject to } U_{i,j} \leq \max\{U_{i,k}, U_{k,j}\}, \quad i,j,k = 1, \ldots, n \end{align*} 其中是一个对称的n × n矩阵,而v e c(U )将U整形为具有n 2个条目的一维向量。üUUn × nn×nn\times nv È Ç(Û)vec(U)\mathrm{vec}(U)üUUñ2n2n^2 上述程序中给我带来麻烦的部分是。(限制非负对称矩阵的解似乎很简单。)最大值{ ⋅ ,⋅ …

3
科学编程竞赛
我定期参加所谓的“编程竞赛”,在那儿您可以在有限的时间内使用自己的代码和解决问题的技能来解决算法难题。有关这些示例的参考示例,请搜索诸如Google Code Jam或ACM-ICPC之类的比赛。 (如果您知道什么是编程竞赛,则可以跳过以下段落) 在这些竞赛中,您可以在物理站点或在线上进行单独竞赛或团队竞赛,目标是在竞赛结束之前解决尽可能多的问题。每个问题都与解决方案必须满足的某些约束条件有关,例如运行时间,使用的内存等。问题难度的范围可以从“显而易见的解决方法”到“需要大量知识或精通技巧才能破解”。主要目标当然是要玩得开心,但是在某些情况下,成功甚至可能会得到现金奖励,荣誉和机智,甚至与Google等顶尖公司的招聘人员进行面试。 (如果您跳过了上一段,请停止跳过,因为这是我的问题) 通过编程竞赛,我对算法,一般计算机科学以及编码和发展我的问题解决技能的整体意义有了真正的兴趣。我也想在科学计算中这样做。 问题: 是否存在与纯算法类型相同的竞争,但侧重于数值分析,优化等? 我尝试了谷歌搜索,但乍看之下找不到任何信息…… 附录:我得到了建议来检查欧拉计划,但这并不是我真正想要的。我想要的是一个更广阔的舞台,练习更多“肮脏”的数字,例如使用pde的解决方案来创意,解决数字优化问题等。仅作比较,Kaggle是一个您可以在定期举行的各种比赛中练习数据挖掘,机器学习等的网站。我想要类似的东西,但是要用数字方案之类来实现和发挥创意。

4
从一组点中选择最分散的点
是否有任何(有效的)算法从一组N个点(M &lt; N)中选择个点的子集,以使它们“覆盖”大部分区域(在大小为M的所有可能子集上)?MMMNNNM&lt;NM&lt;NM < NMMM 我假设这些点在2D平面中。 天真的算法很简单,但是在时间复杂度方面却令人望而却步: for each subset of N points sum distance between each pair of points in the subset remember subset with the maximum sum 我正在寻找一种更有效甚至近似的方法。 例如,这是其中有一些随机点的平面: 对于,我希望选择以下点:M=5M=5M=5 请注意,所选点(红色)分散在整个平面上。 我找到了一篇与该问题有关的文章“ 为视觉跟踪有效地选择空间分布的关键点 ”。但是,这是假定点是加权的。

5
目标函数非常昂贵的问题的并行优化算法
我正在优化10-20个变量的函数。坏消息是每个功能评估都很昂贵,大约需要30分钟的串行计算时间。好消息是我有一个群集,其中包含几十个计算节点。 因此,问题是:是否存在可用的优化算法,这些算法可以使我有效地利用所有这些计算能力? 频谱的一侧将是穷举搜索:将整个搜索空间细分为一个精细的网格,并在每个网格点上独立计算函数。这当然是非常并行的计算,但是该算法效率非常低。 频谱的另一端是准牛顿算法:根据先前的历史智能更新参数的下一个估计。这是一种有效的算法,但我不知道如何使其并行:“基于先前历史估计参数”的概念听起来像是串行计算。 二次算法似乎处于中间位置:可以通过并行计算一堆值来构建初始的“代理模型”,但是我不知道其余迭代是否可并行化。 关于哪种无梯度优化方法在群集上能很好地表现出什么建议?此外,目前是否有并行的优化算法实现方案?

1
BFGS更新的直观动机
我正在教一个数值分析调查课,并且正在为背景/直觉有限的学生寻求BFGS方法的动力! Ĵ ķ(→ X ķ - → X ķ - 1)= ˚F (→ X ķ)- ˚F (→ X ķ - 1)∥ Ĵķ− Jk − 1∥2来回‖Ĵķ-Ĵķ-1个‖来回2\|J_k-J_{k-1}\|^2_{\textrm{Fro}}Ĵķ(x⃗ ķ− x⃗ k − 1)= f(x⃗ ķ)− f(x⃗ k − 1)Ĵķ(X→ķ-X→ķ-1个)=F(X→ķ)-F(X→ķ-1个)J_k(\vec x_k-\vec x_{k-1})=f(\vec x_k)-f(\vec x_{k-1}) BFGS更新的派生似乎更加复杂和模糊!特别是,我不想先验地认为更新应为等级2或采用特定形式。BFGS Hessian更新是否像Broyden的更新一样具有短暂的变化动机?

4
测试数值优化方法:Rosenbrock与实际测试函数
对于无导数优化器,似乎有两种主要的测试函数: 像Rosenbrock函数 ff 这样的 单线,带有起点 带有插值器的一组真实数据点 是否可以将10d Rosenbrock与任何实际的10d问题进行比较? 一个人可以用多种方式进行比较:描述局部极小值的结构, 或者在Rosenbrock上和一些实际问题上运行优化器ABC; 但是这两者似乎都很困难。 (也许理论家和实验者只是两种截然不同的文化,所以我要求一种嵌合体吗?) 也可以看看: scicomp.SE问题:在哪里可以获取用于测试算法/例程的良好数据集/测试问题? 胡克(Hooker)的《测试启发式方法:我们全错了》令人发指:“对竞争的重视……告诉我们哪种算法更好,但为什么却不行。” (在2014年9月增补): BOBYQA PRAXIS SBPLX从:小区下面从10个随机起始点比较在图8d 14个测试功能3种DFO算法NLOpt 14 N维测试功能,Python的下gist.github 从这个Matlab的由A. 每个函数的边界框中的Hedar × 10个均匀随机的起点。××\times ××\times 例如,在Ackley上,第一行显示SBPLX最好,PRAXIS糟糕;在Schwefel上,右下方的面板显示SBPLX在第5个随机起点上找到了最小值。 总体而言,BOBYQA在1,PRAXIS,5和SBPLX(〜具有重新启动功能的Nelder-Mead)上最好,在13个测试功能中有7个,并且Powersum值得一提。YMMV!约翰逊特别指出:“我建议您在全局优化中不要使用函数值(ftol)或参数公差(xtol)。” 结论:不要把所有的钱都花在一匹马或一项测试功能上。

4
具有严格正约束的线性规划可行性问题
有一个线性约束系统。我希望找到一个满足这些约束的严格正向量。这意味着,所需的每个组件的{\ BF X} 。如何使用LP解算器找到这样一个严格的正向量{\ bf x}(或确认不存在 {\ bf x})?我不能简单地引入另一个约束x_i&gt; 0的系统,因为必须始终在LP中允许相等性,但是我可以多次使用LP解算器,并更改目标函数。我认为我应该使用松弛变量方法,但我不知道如何。X &gt; 0 X 我 &gt; 0 X 我X X X X 我 &gt; 0Ax≤bAx≤b{\bf Ax} \leq {\bf b}x&gt;0x&gt;0{\bf x} > 0xi&gt;0xi&gt;0x_i > 0xixix_ixx{\bf x}xx{\bf x}xx{\bf x}xi&gt;0xi&gt;0x_i > 0

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.