mathematical-optimization相关内容

尽管违反了约束条件,IPOPT 为什么要评估目标函数?

我在 Julia 中使用 IPOPT.我的目标函数会对某些参数值抛出错误(具体来说,虽然我认为这无关紧要,但它涉及协方差矩阵的 Cholesky 分解,因此要求协方差矩阵是正定的).因此,我对参数进行非线性约束,以便它们不会产生错误.尽管有这个限制,IPOPT 仍然坚持在参数处评估目标函数,这会导致我的目标函数抛出错误.这会导致我的脚本崩溃,导致痛苦和痛苦. 我很感兴趣,一般来说,IPOPT ..

data.frame 列的子集以最大化“完整";观察

我有一个数据框,其中包含大约 20 个数字列,每个列都包含大量的 NA 值.我想选择这些列的一个子集,这将为我提供包含零 NA 值的最多行.详尽的搜索会花费大量的计算时间——有没有更好的方法来获得近似值? 这是一个数据框较小的示例(完全任意): set.seed(2)foo = as.data.frame(矩阵(rnorm(200), nr = 20))foo[sapply(foo, fu ..
发布时间:2022-01-23 16:02:24 其他开发

.NET/C# 的线性编程库

我需要求解一个由方程和约束组成的欠定线性系统,然后找到使成本函数最小化的特定解.这需要在将在 .NET 和 Mono 中运行的纯可移植托管代码中完成.有哪些免费可用的库可供我用来实现这一点? 我发现免费库提供的所有优化算法仅支持单个变量的区间约束,例如0 ,而不是像 x + 2y ..
发布时间:2022-01-23 15:17:19 C#/.NET

如何将条件约束应用于 Python Pulp 函数

我正在使用 Python 中的 Pulp 设置线性优化.我想为这个问题设置一个条件约束. 比如,我想最大化工厂的利润.对于材料的成本,前 1000 个单位成本为 5 美元,任何更多单位成本为 3 美元.例如,如果工厂订购 1100 台,总成本将为 1000*5+100*3.我有一个材料列表:material_list,一个材料基准字典:benchmark_dic={material_a: 1 ..

给定一个目标总和和一组整数,找到与该目标相加的最接近的数字子集

我有一组整数 M 和一个目标总和 k.我想找到 M 的子集,当它加在一起时最接近 k 而不会超过. 例如: M = {1, 3, 5, 5, 14}k = 12答案 = {1, 5, 5}因为 1 + 5 + 5 = 11 而没有办法使 12. 我有一个额外的约束,即子集最多可以包含 4 个元素. 在我的应用程序中,|M| 的大小可以很大(大约有数千个元素).如果无法在合理的时间内 ..

加速 Java 中的数学计算

我有一个用 Java 编写的神经网络,它使用定义如下的 sigmoid 传递函数: private static double sigmoid(double x){返回 1/(1 + Math.exp(-x));} 这在使用网络的训练和计算过程中被多次调用.有没有办法加快这个速度?不是慢,只是用的多,所以这里的小优化会带来很大的整体收益. 解决方案 对于神经网络,您不需要 sigmoi ..
发布时间:2021-12-31 17:07:26 Java开发

理解scipy盆地跳跃优化函数的例子

我遇到了scipy 中的盆地跳跃算法并创建了一个简单的问题来理解如何使用它,但它似乎无法正确解决该问题.可能是我做错了什么. 代码如下: import scipy.optimize as spo将 numpy 导入为 npminimumr_kwargs = {“方法":“BFGS"}f1=λ x: (x-4)def mybounds(**kwargs):x = kwargs["x_new" ..
发布时间:2021-12-31 12:25:53 Python

为什么我不能为整数规划装配 SciPy 的约束优化?

我读过整数规划要么非常棘手要么不可能SciPy 并且我可能需要使用 zibopt 之类的东西在 Python 中做到这一点.但我真的认为我可以通过为 SciPy 优化的向量中的每个元素创建一个“二进制"约束来实现. 为此,我使用了 http://docs.python-guide.org/en/latest/writing/gotchas/#late-binding-closures并为每个 ..
发布时间:2021-12-31 12:18:08 Python

仅依赖于 NumPy/SciPy 的二次程序 (QP) 求解器?

我希望学生在作业中解决二次程序,而无需安装额外的软件,如 cvxopt 等.是否有仅依赖于 NumPy/SciPy 的 Python 实现可用? 解决方案 我遇到了一个很好的解决方案,想把它拿出来.在 NICTA 的 ELEFANT 机器学习工具包中有一个 LOQO 的 Python 实现(http://elefant.forge.nicta.com.au 发布时).看看 optimiza ..
发布时间:2021-12-31 12:09:29 Python

将平面拟合到 3D 中的一组点:scipy.optimize.minimize vs scipy.linalg.lstsq

给定一组 3D 点,一般的问题是求平面方程的 a, b, c 系数,形式如下: z = a*x + b*y + c 这样得到的平面最适合那组点. 在 这个 SO 答案中,函数 scipy.optimize.minimize 就是用来解决这个问题的. 它依赖于对系数的初始猜测,并最小化一个误差函数,该函数将每个点到平面表面的距离相加. 在此代码(基于这个其他 SO 答案) sc ..
发布时间:2021-12-31 11:55:47 Python

如何显示 scipy.optimize 功能的进度?

我使用 scipy.optimize 来最小化 12 个参数的函数. 我已经开始优化了,还在等待结果. 有没有办法强制 scipy.optimize 显示它的进度(比如已经完成了多少,当前最好的点是什么)? 解决方案 正如 mg007 所建议的,一些 scipy.optimize 例程允许回调函数(不幸的是,leastsq 目前不允许这样做).下面是一个使用“fmin_bfgs ..
发布时间:2021-12-31 11:55:09 Python

更新时如何在 Tensorflow 中检查梯度中的 NaN?

全部, 当你训练一个包含大量样本的大型模型时,一些样本在参数更新时可能会导致NaN梯度. 我想找出这些样本.同时我不希望这批样本的梯度更新模型的参数,因为这可能导致模型的参数为 NaN. 那么有没有人有解决这个问题的好主意? 我的代码如下: # 创建一个优化器.参数 = tf.trainable_variables()opt = tf.train.AdamOptimiz ..

用于 Python 的快速最大流最小切割库

是否有可靠且文档齐全的 Python 库,可以快速实现在有向图中找到最大流和最小割的算法? pygraph.algorithms.minmax.maximum_flow 来自 python-graph 解决了这个问题,但是它非常缓慢:在有 4000 个节点和 11000 条边的有向图中找到最大流和最小割需要 > 1 分钟.我正在寻找至少快一个数量级的东西. 悬赏:我在这个问题上悬赏,看 ..
发布时间:2021-12-24 14:48:08 Python

在给定分子和分母的范围内,在 0..1 之间找到与给定随机实数最接近的整数分数

给定两个范围的正整数 x: [1 ... n] 和 y: [1 ... m] 和从 0 到 1 的随机实数 R,我需要从 x 和 y 中找到一对元素 (i,j),使得 x_i/y_j 最接近 R. 找到这对的最有效方法是什么? 解决方案 使用 Farey 序列 这是一个简单且数学上漂亮的算法来解决这个问题:运行二分搜索,在每次迭代中,下一个数字由中位数公式(如下)给出.根据法里 ..

如何在有边界的python优化中找到全局最小值?

我有一个有 64 个变量的 Python 函数,我尝试在最小化函数中使用 L-BFGS-B 方法对其进行优化,但是这种方法对初始猜测有很强的依赖性,并且未能找到全局最小值. 但我喜欢它为变量设置界限的能力.有没有一种方法/函数可以在有变量边界的同时找到全局最小值? 解决方案 这可以通过 scipy.optimize.basinhopping 来完成.Basinhopping 是一种旨 ..
发布时间:2021-12-20 16:23:38 Python

scipy.optimize.leastsq 有边界约束

我正在 scipy/numpy 中寻找一个优化例程,它可以解决非线性最小二乘类型问题(例如,将参数函数拟合到大型数据集)但包括边界和约束(例如最小值和最大值)待优化参数).目前我正在使用 mpfit 的 python 版本(从 idl 翻译...):这显然不是最佳的,尽管它工作得很好. python/scipy/etc 中的高效例程可能很棒!在这里非常欢迎任何输入:-) 谢谢! ..
发布时间:2021-12-20 16:14:32 Python

最大化“非重叠"的总和矩阵中的数字

只是寻找一些方向,我意识到给出的示例可以使用蛮力迭代来解决,但我正在寻找一个更优雅的(即数学?)解决方案,它可能会解决更大的示例(比如20x20 或 30x30).这完全有可能无法做到,而且我在想出一种不依赖蛮力的方法方面几乎没有成功...... 我有一个矩阵(称为 A),它是 nxn.我希望从矩阵 A 中选择一个点的子集(称为 B).该子集将由 n 个元素组成,其中从 A 的每一行和每一列 ..