问题标签 [simplex-algorithm]

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 回答
44 浏览

python - 如何创建单纯形算法表

我正在尝试创建一个可以有用户输入的表。我想要一个带框的表格,而不是向用户询问数字列表,他们可以在表格中输入很多数字。现在我有一个变量列表,它要求用户输入所有变量。

我希望它看起来有点像这样,通过某种方式输入数字。 https://imgur.com/a/leUICVS

到目前为止,这是我的代码。这不是很好。可能有一个更简单的方法来做到这一点。

我最终希望能够输入数字,然后让程序根据底行中最负的数字旋转表格。但是,我不确定如何去做。

0 投票
1 回答
331 浏览

python - 修正单纯形法进入死循环

我正在尝试使用 Python 和 numpy实现修改后的单纯形法(RSM)算法。我坚持它要么只进行最大化(在 2x4、5x5 等微小矩阵上正确,而在较大矩阵上错误)或在大多数最小化情况下进入无限循环。下面的代码演示了我实现最小化的尝试:

我也尝试对 c_f_indices 进行排序,但仍然会出现无限循环。类似的RSM 实现也会在较大的矩阵(例如 16x8)上产生错误的结果,并且在小矩阵上也能正常工作。

问题的根源在哪里?

0 投票
0 回答
11 浏览

matlab - Matlab CVX 程序的优缺点

我已经开始使用这个程序来解决 LP 问题(尤其是单纯形法),我想知道这是否是最好的选择。谢谢

0 投票
1 回答
164 浏览

python - python networkX网络单纯形

我正在尝试使用 networkX 库解决交通问题。由于我的需求和供应值是浮动的,我的问题似乎无法通过 networkX 包解决?请参阅第 377 页上的文档。 https://networkx.org/documentation/stable/_downloads/networkx_reference.pdf

有什么解决方法吗?我的问题是由于舍入错误造成的,因为我的浮点数非常小。

有没有其他支持浮点数的库来解决python中的最小成本流问题?

干杯

0 投票
0 回答
95 浏览

python - 用于运输问题的python网络单纯形算法?

经过大量研究后,我无法找到 Python 的网络单纯形算法。这个算法已经用许多其他语言实现了,所以我猜一定有一个 python 实现?我不想使用 PuLP,因为 PuLP 使用此问题的标准 LP 公式化。

以前有人处理过这个问题吗?

0 投票
2 回答
50 浏览

python - 使用单纯形算法的 2D 光纤对准

我一直在编写一些代码来自动将我的光纤(其 X、Y、Z 位置由电机控制)与光源对齐。为此,我编写了axis.move_to(pos)将轴移动到某个位置的pm.meas_power()方法,以及从功率计测量光功率的方法。

我的目标是找到最佳 (Y, Z) 位置(此阶段不需要 X)以最大化光功率。现在,搜索区域与光点大小相比相当大,所以如果我从只发现噪声的区域开始,简单的梯度搜索将无济于事,所以我所做的是随机移动穿过搜索区域,然后移动到一旦我发现一个高于某个阈值的功率,爬山算法。

问题在于,它的效率很低。优化的第一种方法是在螺旋中而不是随机地搜索第一道光,但从计算上讲,它并没有真正提高步数。

相反,我遇到了单纯形算法,据说它产生的结果比爬山好得多。我发现 scipy 有一种optimize.linprog()具有单纯形算法的方法,但在我看来,这仅适用于一维问题。

我尝试阅读文档并编写自己的代码,但我对优化知之甚少,所以我很难真正理解它是如何工作的。

我想知道你是否可以帮我写一个给定的算法[ystart, zstart, yend, zend],即搜索区域限制,以及我的两种方法axis.move_to(pos)pm.meas_power()

0 投票
0 回答
26 浏览

java - Apache Commons Maths 3.6.1 中的 SimplexSolver 示例

我是线性优化的新手,目前正在尝试使用SimplexSolver.classfrom org.apache.commons.math3.optim.linear

因此,我查找了一些有关如何使用它的示例,以了解它,并回想 Simplex 算法的确切处理方式及其工作原理。

但不幸的是,我遇到了一些问题。对于我能找到的所有示例,该类都是以这种方式使用的:

但是示例中的参数不符合函数的当前期望optimize。查看文档对我来说不是很有帮助,因为它只是说我需要一个 type 参数OptimizationData。因为OptimizationData只是一个接口,我真的不知道该用哪种类型。

有没有人有一个如何optimize正确使用该功能的例子?

0 投票
0 回答
19 浏览

math - 无效的分形布朗运动实现

我从 Github 复制并粘贴了这个。它看起来更好,在这里更具可读性: https ://github.com/RylanYancey/temp-rusty-noise/issues/1

问题:

参考:

https://github.com/RylanYancey/temp-rusty-noise/tree/main/src

这个存储库包含我将在这篇文章中引用的代码。重要的文件在 src.

https://thebookofshaders.com/13/

这篇文章解释了分形布朗运动。我使用它的代码示例来构建我的 FBM。不确定如何为单纯形噪声算法实现种子。

据我了解,噪声算法使用排列来产生噪声。这是我的排列:它存在于 generate.rs 中。我怀疑你很难找到它。

当我分析不同的噪声算法时,我注意到它使用种子来打乱这些值。它通过将给定的种子作为种子插入 Microsoft 的 System.random 库中,然后将排列的每个索引设置为 random.next() 中的“随机”值。

排列是随机的还是加扰的?我错了这是如何工作的吗?

此外,如何将种子实现为 Simplex Noise?不确定如何在不展平的情况下增加八度音阶。

我的库在生成噪声值后实现了分形布朗运动。看起来是这样的:这段代码使用了 Rust。如果您不熟悉 Rust 语法,请了解以下内容:

FBM 的实现由噪声配置控制,如下所示:

噪声配置被传递到生成函数以控制 FBM。

注意:该值生成后会转换为 NoiseConfig 中指定的范围之间的整数

这种 FBM 实现的问题在于,随着八度音阶的增加,值趋于“扁平化”。如果您要转换为小范围(例如 0-7),这一点尤其明显。

有 1 个八度: 超级史诗般的形象

有 10 个八度音阶: 不是那么史诗般的形象

这是因为这些值被加在一起,并且由于这些值沿着钟形曲线(在一定程度上)下降,这些值往往会堆积在分布的中间,从而导致扁平化效果。

我希望我图书馆的用户能够将八度音阶增加到他们想要的最高值。这怎么可能?不确定如何进行更健壮的 FBM 实施。

在本期的上一个问题中,我分享了我的 FBM 代码。这就是启发我的代码的 FBM 代码的样子:这段代码是用 C# 编写的。

上面的代码有几个问题。即,它不能轻易转换为给定范围。那是因为返回值乘以幅度。我不确定如何计算特定噪声配置的最大值/最小值。

其次,它仍然存在更高八度音阶使噪声图变平的问题。

我的问题,具体来说:

如何使我的 FBM 实现更加健壮?我应该添加哪些值,以及如何以可以将它们转换为指定范围的方式实现它们?