问题标签 [nonlinear-optimization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何在 C# 中模拟 Microsoft Excel 的求解器功能(GRG 非线性)?
我有一个带有约束的非线性优化问题。它可以在 Microsoft Excel 中使用 Solver 加载项解决,但我无法在 C# 中复制它。
我的问题显示在以下电子表格中。我正在解决经典的 A x = b问题,但需要注意的是x的所有分量都必须是非负的。因此,我没有使用标准线性代数,而是使用具有非负约束的 Solver,最小化平方差之和,并得到一个合理的解决方案。我尝试使用Microsoft Solver Foundation或Solver SDK在 C# 中复制它。但是我似乎无法与他们取得任何进展,因为使用 MSF 我无法弄清楚如何定义目标,而使用 Solver SDK 我总是得到“最佳”状态和全 0 的解决方案,这绝对不是本地的最低限度。
这是我的 Solver SDK 代码:
我没有 Microsoft Solver Foundation 的任何代码,因为我认为目标函数不能写在一行中,并且它不允许像 Solver SDK 那样的委托。
optimization - CUDA 中全局优化的成本函数计算
我正在尝试使用参数( )优化一个函数(比如找到最小值)。所有's 都绑定到某个范围(例如to ),如果任何参数离开此范围,则函数会非常快地变为无穷大。但是,可能很大(从到大约)并且计算它的值需要很长时间。n
Xn
Xi
-200
200
n
20
60-70
我不认为关于函数的细节有很大的相关性,但这里有一些:它由较小的函数(所有不同的)的加权和组成,20-30
这些函数本身由倒数符号下的点积总和组成正弦函数(arcsin
、arccos
、arctan
等)。类似的东西arcsin(X1 . X2) + arcsin(X4 . X7) + ...
。
该函数通常具有许多局部最小值,因此(朴素)共轭梯度或准牛顿等方法是无用的。搜索整个域蛮力太慢了。
我最初的想法是结合遗传算法使用某种大规模并行化,该算法在函数域中的不同位置执行许多搜索,并定期检查某些搜索是否达到局部最小值。如果是,它比较它们并丢弃除最小的结果之外的所有结果,并继续搜索直到找到一个相当小的值。
我的两个问题是:
1)是否可以在 CUDA 或类似技术中实现这个问题?CUDA 能足够快地计算出这样一个函数的值吗?
2)在多核PC(12+核)上解决问题会更好/更快吗?
c++ - C++ 中的顺序非线性优化库 WITH 约束
c++ 中有没有用于带约束的顺序非线性优化的好的库?
我正在寻找不等式约束和/或上限和下限。
对此已经有一个stackoverflow问题,但并非所有人都有限制。
我知道NLopt,但它不适用于我的具体问题。还有其他人吗?
如果其他人有兴趣,我终于找到了我正在寻找的解决方案lpOpt
haskell - Libraries for sequential non-linear optimization in haskel?
Are there any libraries for sequential non-linear optimization with upper and lower bounds, as well as inequality constraints, that are written in or easily callable from Haskell?
c# - 使用 C# 中的极端优化进行风险平价投资组合优化
我正在尝试使用极端优化例程在 C# 中创建风险平价投资组合。
在我购买它们之前,我主要是在试穿它们,看看我是否喜欢它们(我是学生,所以钱很紧)。
我的想法是实施这种称为风险平价的新型投资组合优化。它基本上说,为了使您的投资组合多样化,您应该为其每个组成部分赋予相同的风险。
运行 np1.Solve() 时出现空错误,我不明白为什么。我以为其他的一切都是由极限优化计算出来的。
1.我做错了什么?
2. 有没有一种我不知道的更快的方法来进行这种优化?
3. 如果你不知道 EO 库,但可以用 C# 中的其他东西来实现它,你能否就如何解决这个问题发表评论?
顺便说一下,投资组合构建的详细信息在距离函数的注释中,以防您感兴趣。
最好的问候,
爱德华多
cuda - 在 GPU 上是否存在用于许多并行优化作业的库
我希望在我的 nVidia Geforce 上执行许多(数千个)小型优化工作。
对于小型工作,我的意思是 3-6 个维度和每个大约 1000 个数据点输入。基本上它是为了曲线拟合的目的,所以要最小化的目标函数是一个连续(非平凡)分析函数的平方和,我可以分析地计算它的一阶导数。每个维度都被限制在下边界和上边界之间。
这些工作唯一的共同点是原始数据系列,他们从中提取了不同的 1000 个数据点。
我怀疑这在我的 GPU 上会比现在快得多,在我的 CPU 上一个接一个地运行它们,所以我可以用它来进行实时监控。
但是,我见过的 GPU 库只专注于在 GPU 上计算单个函数评估(更快)。
在 nvidia CUDA 论坛上有一个关于我的特定问题的主题,有更多用户在寻找这个,但论坛已经关闭了一段时间。它提到将现有的 C 库(例如 levmar)移植到 CUDA 语言,但这迷路了......
您是否知道现有的库可以在 gpu 上并行运行许多优化?
谢谢!
matlab - 在 Matlab 中解决某种类型的混合整数规划
我想在 matlab 中解决一个相当复杂的优化问题,我将它发布在 math.stackexchange.com 上,因为它支持 LaTeX 数学显示,
如果有人能给我一些建议,我将不胜感激。
r - R 中的优化 - 具有非线性约束的非线性效用函数
我试图找到向量β
以最大化功能
受限于 (a)
(b) 的所有元素都 β
应该是非负的,
withβ, μ
是长度为 15 的向量,并且M
是一个 15x15 的协方差矩阵(μ
和M
是给定的)。
关于Stefan Theussl 的 CRAN 页面上列出的哪些优化器最适合我的情况的任何建议?
c++ - Matlab fmincons 和 C++ 的 NLP 求解器(如 ipopt)之间的性能差距是多少?
我即将为实时应用程序编写一个算法,其中涉及一些高维 NLP(非线性规划)。
在实现之前,我需要对我的算法进行计时,看看它是否适用于实时应用程序,因此我使用 Matlab 的内置 fmincons 作为基线。
经验表明,matlab 算法的速度往往比 C++ 算法慢,所以我想估计在这种特殊情况下我可以期待什么样的性能提升?
由于我的工作主要与实时应用程序相关,因此我很少使用 NLP(非线性编程),所以我问了我的同事,他们建议我尝试 ipopt 作为开始,我在其网站上进行了谷歌搜索,那里没有针对 Matlab 的基准,也没有太多关于他们算法细节的话题(至少在Matlab中,不难检查他们的算法细节),所以我基本上对它的准确性/鲁棒性/最优性等知之甚少。
因此,这里有关 NLP 的 C++ 实现的任何帮助都会非常有帮助,在此先感谢。
ms-solver-foundation - 求解查普曼-理查兹方程
我需要找到一种方法来解决具有 3 个参数的 Chapman-Richards。方程是
F=a(1-EXP(-bt)) power c
这是一个非线性问题。目标是最小化误差,约束是 3 个变量必须 >= 0.0001。我们当前的实现使用 Excel 和 Solver 插件(GRG 非线性方法)。但是现在,我们需要在不使用 Excel 的情况下实现这一切。
我的问题是: 1. 是否可以使用 MS Solver Foundation 来解决这个问题?我已经阅读了一些文档并了解 MS Solver Foundation 使用 Nelder Mead Solver 或混合局部搜索求解器来解决非线性问题。有谁知道我的特定问题是否可以使用这些方法解决?而且,结果是否与使用 Excel 的 Solver 插件的 GRG 非线性方法相同?
如果没有,是否可以实现Excel Solver的GRG非线性方法?
还有其他方法可以实现吗?
感谢您提前回复。卡尔
附录:对不起,我忘了说 t 是时间变量。a、b 和 c 是求解器可以更改的参数。