问题标签 [simplex]
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.
python - 使用 scipy.optimize.linprog 编程 - 可变系数
尝试使用 scipy.optimize.linprog 优化成本函数,其中成本系数是变量的函数;例如
例如
等等
*只是为了澄清*
我们正在寻找最小的变量成本;xi; i=1,2,3,...
xi 是正整数。
然而,每个 xi 的成本系数是 xi 值的函数。成本是x1*f1(x1) + x2*f2(x2) + ... + c0
fi - 是一个“比率”表;例如- f1(0) = 0; f1(1) = 2.00; f1(2) = 3.00
,等等。
xi 受约束,不能为负数,不能超过 qi =>
为每个可能的 xi 值计算 fi() 值
我希望它能澄清模型。
r - 具有顺序约束的 LS 回归
我是 R 新手,非常感谢您的帮助。我有一个约束的优化问题。尽管有几种方法可以解决 R 中的优化问题,但我无法使用需要应用的约束正确表达我的问题。
假设我有以下三类数据:
我想将指数函数y(t)拟合到每个类别中的数据点(最小化平方误差),以便选择y(t)_c > y(t)_b > y(t)_a > 0 t [1;15]
c++ - 可行的方法陷入无限循环
我已经运行了以下用 C++ 编写的单纯形方法。代码如下:
但是这段代码在无限循环中运行。可行的方法陷入死循环。我该如何解决这个错误?请帮我 。
performance - 为什么 scipy 中 Nelder-Mead 的每次迭代都这么慢?
我正在尝试使用 scipy.minimize(method='Nelder-Mead') 中实现的 Nelder-Mead 来最小化一个函数。该函数有大约 30 个输入,但我一直在按顺序优化(即优化前 5 个,保持其余 25 个固定,然后逐渐增加要最小化的变量数量)。(我没有使用基于梯度的,因为我的目标函数中存在模拟噪声,对于太小的步长和不可靠的梯度来说,它是不平滑的)。
但是,迭代非常缓慢。如果我对单个函数评估的步骤进行计时,大约需要 60 秒,但优化中的每次迭代都很慢,至少慢于 10 分钟。我正在使用回调函数选项来衡量所花费的时间。
它在每次迭代中做了什么?在初始单纯形中实际上需要 N^2 步吗?算法的每一步都做了什么?我知道它与 Matlab 实现不同,每次迭代只需要一个步骤(如果它正在缩小或扩展单纯形,有时会更多)。还是只是回调函数何时被调用的问题?
顺便说一句,我在 Jupyter 笔记本中运行它。但是我已经运行了 3 天以上,只完成了 221 次迭代和 20 个变量需要优化;平均每次迭代超过 20 分钟。
java - SimplexSolver,二元或半连续变量
在长期寻找纯 JAVA 单纯形求解器的过程中,我发现了来自 Apache Commons Math 3.3 API的SimplexSolver 。
现在我已经弄清楚了基础知识,但我想知道的是,这个单纯形求解器是否能够解决包括二进制(可能或可能未在解决方案中使用)或半连续变量的问题。
我在谷歌上花了几天时间寻找一个使用 Simplex 的解决方案,并且我可以在没有任何 JNI 的情况下在 JAVA 中使用,但遗憾的是这是我所得到的。
我要解决的问题: X 需要 >= 100 和 <= 10000 OR 0。这就是半连续变量的用途...
任何帮助,将不胜感激..
optimization - 用于约束优化的 Nelder Mead 算法?
我读过 Nelder Mead 算法正在用于无约束优化。 http://www.scholarpedia.org/article/Nelder-Mead_algorithm 我认为在 Matlab 中 Nelder Mead 也用于无约束优化。但是,我有点困惑,因为我找到了一个用于优化的 Java API http://www.ee.ucl.ac.uk/~mflanaga/java/Minimisation.html (弗拉纳根的科学图书馆),它有一个实现的类Nelder Mead 单纯形,并允许定义约束和界限。那么,在 Flanagan 的 API 中实现的版本是“经典”Nelder Mead 算法的修改变体吗?
java - 单纯形算法
我必须构建 Simplex Algorithm 及其工作,但我想允许用户输入数据,在方法 main 我做了几个“for”循环,我将日期放入数组中,但我将相同的数据放在另一个数组中,(他们有完全相同的数据)我不知道如何修复它。
当我尝试为一种类型的日期只制作一个数组时,它就崩溃了。
[编辑] 是的,我更新了那些扫描仪(谢谢大家)现在我有这个错误:
“线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:simplex.Simplex$Modeler.(Simplex.java:224) 处的 2simplex.Simplex.main(Simplex.java:196)”
}
python - scipy.optimize.fmin(Simplex)如何处理与不同幅度相关的参数?
我想通过使用 Simplex 算法 (scipy.optimize.fmin) 的 python 实现最小化卡方损失函数来将 4 参数(a、g、N 和 k)模型拟合到数据中。初步模拟建议每个参数的范围如下:a = [5, 50]、g = [0.05, 1.5]、N = [5, 200] 和 k = [0, 0.05]。
看起来 scipy.optimize.fmin 函数将参数视为它们都在同一范围内(大概是 [0, 1])。我应该重新调整它们吗?下面是我的代码:
r - Optimsimplex:未能定义必要的参数
我试图做一个普通的单纯形(三角形或四面体的概念到任意尺寸)来开始一组优化实验。Optimsimplex包通过使用 Spendley 方法提供了一种简单而有用的方法来实现这一点:
结果Ultra
是一个包含空间维度 (n) 的 optimsimplex 类对象,并且每个 (n+1) 顶点的 (n) 坐标。可以使用 len 选项指定单纯形的维度(长度):
len:单纯形的维度。如果长度是一个值,则在所有方向上都使用该唯一长度。如果 length 是具有 n 个值的向量,则每个长度都与相应的方向一起使用。仅在方法设置为 'axes' 或 'spendley' 时使用</p>
但是这个结果出现了一个我无法理解的错误:
错误:optimsimplex:len 向量应为行矩阵,但当前形状为 1 x 4
那么,1 x 4 不是 {optimsimplex} 预期的行矩阵吗?这可能对应于包中的某种错误吗?提前致谢。