问题标签 [solver]

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.

0 投票
1 回答
1830 浏览

excel - Excel VBA:求解器似乎没有使用日期变量“随时间”优化?

我有一个优化问题,我尝试用求解器解决。其中,一个决策变量是包含日期的单元格。Solver 应根据时间序列选择最佳时间点。然而,虽然它改变了其他决策单元,但它永远不会改变这个!我什至尝试删除其他决策变量(保持它们不变) - 仍然没有变化。

为了帮助您锁定我的问题,我创建并附加了一个 Excel 表(此处:下载链接),其中包含一个简化的问题,Solver 应该从股票价格的时间序列中选择价格最高的日期。(我知道这个特殊问题可以很容易地用 MAX 公式解决,但我真正的优化问题要复杂得多,并且不允许这种解决方案。)

Solver 在初始日期值处仍然没有改变任何东西——即使在这个非常简化的设置中!

从数学的角度来看,目前的问题可以被描述为一个(非线性)阶跃函数,其中特定的时间点(在 x 轴上)对应于不同的价格(在 y 轴上的阶跃)。

是否有任何技巧可以让求解器处理时间(日期)值?如果您有幸找到一组正确的 Solver 设置以使其获得正确的解决方案(即 2009 年 1 月 10 日),我将非常高兴听到他们的消息。

编辑:我发现具有非平滑不连续函数的非线性问题(比如这个问题,基本上是一个楼梯函数)通常很难被任何(非线性)线性优化器解决。精通此事的人可以帮助我以可解决的方式重新提出问题。我发现了一个类似的关于堆栈溢出的主题,并提供了一个建议的解决方案(见第一个答案),但不知道如何将它应用于我的问题。

谢谢,史蒂夫

0 投票
3 回答
5107 浏览

algorithm - 多项式逆

我有一个五阶多项式:

y = ax 5 + bx 4 + cx 3 + dx 2 + ex + f

系数 af 是已知的,我需要计算给定 y 的 x。我可能会使用 Newton-Raphson 算法或类似的算法,但如果可能的话,我更喜欢非迭代解决方案。

编辑:我想在发布我的问题之前我没有充分考虑这一点。我的多项式系数是从采样数据中计算出来的,在这种特殊情况下,只有一个根。我没有想到,当然,在一般情况下可能有五个不同的词根。我想我也会将采样数据拟合到一个逆多项式,并使用它从 y 计算 x。

0 投票
2 回答
8377 浏览

c# - 寻找 .NET 数学公式编辑器和求解器控件

我正在寻找可以处理编辑和求解简单数学方程(带图像生成)的第 3 方自定义控件。

我知道 LaTeX 并使用它的语法来生成数学方程的图像(我在这里使用了这个实现 LaTeX 的项目:http: //www.codeproject.com/KB/dotnet/Eq2Img.aspx),我发现了几个可以将方程作为输入字符串、编译、解析和求解方程的项目(这里有一个: http: //www.codeproject.com/KB/recipes/EvaluationEngine.aspx)。

但是,我还没有找到任何东西可以让你用输出的预览图像构建一个方程(就像 LaTeX 一样),然后允许你为方程中的变量指定值,并用输出的结果求解方程。

有谁知道是否存在任何可以编辑和求解数学方程的第三方控件?我正在使用 C# .NET 4.0,所以希望我可以在 .NET 中使用库/控件。

任何帮助或类似的链接将不胜感激。

谢谢,马克

0 投票
1 回答
2016 浏览

c - 使用 C 求解矩阵(在 CUDA 内)

作为更大问题的一部分,我需要解决小型线性系统(即 NxN,其中 N ~10),因此使用相关的 cuda 库在速度方面没有任何意义。

不幸的是,还不清楚的是如何在不使用 GSL、EIGEN 等大炮的情况下解决此类系统。

谁能指出我在直线 C 中的密集矩阵求解器(Ax = B)的方向?

对于那些感兴趣的人,这部分代码的生成器的基本结构是:

不幸的是,我对高等数学的了解几乎为零,所以任何建议都将不胜感激。

更新:我一直在努力解决这个问题,并且有一个几乎可以运行但不起作用的解决方案。欢迎任何潜伏的人来看看我到目前为止在pastebin上得到了什么。

我正在使用带有 Pivoting 的 Crout 分解,这似乎是最通用的方法。这个测试的想法是每个线程都做同样的工作。我知道很无聊,但计划是增加matrixcount变量,放入实际数据,每个线程单独求解小矩阵。

感谢所有对此进行检查的人。

回答后更新:完成了 CPU 和 GPU 操作的矩阵求解代码,在此处查看我的惰性写入

0 投票
1 回答
2369 浏览

excel - Excel Solver 和 VBA:约束中的浮点/小数被错误地转换为整数?

我在 Excel 2007 和 2010 下运行 VBA 脚本,这涉及使用 Excel 的内置求解器进行大量优化。

指定十进制约束(如 X>=0.0001)的正确方法是什么,其中 X 将是问题的决策变量。

还是我必须删除引号 "" ?Solver 的 VBA 接口是否允许十进制(非整数)约束?

我在问,因为有时我会(未经证实)感觉 >=0.0001 的约束被错误地解释为 >=1,这当然会产生错误的结果。

如果有人能为我澄清这些问题,那就太好了。

史蒂夫

0 投票
1 回答
2467 浏览

excel - 对Excel 2010的Evolutionary Solver方法的看法和体会

Microsoft 通过进化求解器引擎增强了标准求解器插件的现有单纯形(线性)和梯度(非线性)求解器引擎,旨在解决全局最优解通常很难(或大部分时间)的非平滑不连续问题甚至不可能)与其他引擎一起找到。事实上,它是以前只能通过 Frontline 的 Premium Solver 产品线获得的求解器之一,所以我认为它可以被认为是对 Excel 附带的标准求解器的慷慨补充。

我没有听到很多关于使用这个新引擎的人的消息,我猜大多数求解器用户都没有注意到微软最近添加的这个。我在这里意识到了这一点:http: //office.microsoft.com/en-us/excel-help/what-s-new-in-excel-2010-HA010369709.aspx

因此,我想听听您对它的意见和经验,以及关于合理设置的信息,因为它似乎比其他方法需要更多的时间来收敛。

0 投票
3 回答
4561 浏览

algorithm - 在 C++ 中寻找优化算法来替换 Excel Solver

由于 Excel Solver 在数以千计的优化上运行起来非常慢(原因是它使用电子表格作为界面),我试图在 C++ 中实现一个类似的(特定于问题的)求解器(使用 Visual Studio 2010,在 Win 7 64 位平台)。我将通过 VBA 中的 Declare 语句包含 DLL,并且已经有这样做的经验,所以这不是问题。

我的问题是最小化经验数据与非线性但平滑的目标函数之间的平方误差之和,问题将包括非负性(X>=0)甚至正性约束(例如 X>=0.00000001) , X 表示决策变量。

我正在寻找一个健壮的、经过验证的实现。它可能是已建立图书馆的一部分。例如,我已经查看了 ALGLIB 存储的内容(请参阅http://www.alglib.net/optimization/),似乎他们的算法中只有一种接受有界约束。但是我不知道它的价值,这就是为什么我试图收集一些意见。

或者,另一方面,是否建议使用此类基本约束来增强 ALGLIB 的 Levenberg-Marquardt 算法,例如通过拒绝每个不满足我的约束的中间解决方案?(猜猜不会这样做,但仍然值得一问)

0 投票
1 回答
4073 浏览

c - C:LU Complete Pivoting Decomposition and Matrix Solver;有什么不对劲

几天来,我一直在研究一个 DIY linalg 求解器,并且它正在组合在一起(对你们在 stackexchange 来说不是小事目前正在经历一个 Brain Fart 并且看不出当前代码有什么问题。任何见解将不胜感激;你们真棒!

下面的代码应该是可复制粘贴的;结果应该是-15,8,2,但它当前抽出2,inf,-inf,不用说,这是不正确的。

编辑:我认为最后要修复的是 Back Substitution / Ux=x 阶段,但据我所知,这是“正确的”。我正在通过这个例子来检查我的中间工作

0 投票
2 回答
1236 浏览

oop - Excel VBA:来自太多未破坏对象的溢出错误?

在大型数据集上执行优化任务时,我不时收到溢出运行时错误 6(通常在 1 小时或 2 小时后)。当我从停止的地方重新启动宏时,错误消失了,即从发生错误的地方再次启动宏。溢出错误是否与创建了太多使用后未正确销毁的对象有关?

这是我的容器类的(简化版本),它被破坏(通过 Set ... = nothing)和重建(通过 Set ... = New)数千次。

容器变量 global_container 必须是全局的,因为它必须可以从工作表 UDF (RMSE_UDF) 中调用;据我所知,工作表公式不能将对象作为参数,例如“=RMSE(MyContainer,...)”。均方根误差 (RMSE) 的最小化是使用 Excel Solver 进行的。

0 投票
3 回答
4309 浏览

language-agnostic - 解决LP(和QP)的“内点法”的实现

我想看看 IPM 的几个实现。首选语言是 C/C++、Java 或任何脚本语言,如 python、perl。其他的也很好。

我正在寻找可以帮助我的好资源,

  1. 优化技术基础,
  2. 内点法的基础知识及其与其他技术的基础差异,
  3. IPM 的类型,
  4. 算法细节,以及
  5. 示例实现。

作为我项目的一部分,我对此很感兴趣,我将使用这些想法/逻辑来解决线性或二次方程的系统。

如果您对上述资源有任何信息,请告诉我。