mathematical-optimization相关内容
我正在尝试在 Julia 中实现一个简单的正则化逻辑回归算法.我想使用 Optim.jl 库来最小化我的成本函数,但我无法让它工作. 我的代价函数和梯度如下: 函数代价(X, y, theta, lambda)m = 长度(y)h = sigmoid(X * theta)reg = (lambda/(2*m)) * sum(theta[2:end].^2)J = (1/m) * sum(
..
我在 Julia 中使用 IPOPT.我的目标函数会对某些参数值抛出错误(具体来说,虽然我认为这无关紧要,但它涉及协方差矩阵的 Cholesky 分解,因此要求协方差矩阵是正定的).因此,我对参数进行非线性约束,以便它们不会产生错误.尽管有这个限制,IPOPT 仍然坚持在参数处评估目标函数,这会导致我的目标函数抛出错误.这会导致我的脚本崩溃,导致痛苦和痛苦. 我很感兴趣,一般来说,IPOPT
..
我有一个数据框,其中包含大约 20 个数字列,每个列都包含大量的 NA 值.我想选择这些列的一个子集,这将为我提供包含零 NA 值的最多行.详尽的搜索会花费大量的计算时间——有没有更好的方法来获得近似值? 这是一个数据框较小的示例(完全任意): set.seed(2)foo = as.data.frame(矩阵(rnorm(200), nr = 20))foo[sapply(foo, fu
..
我需要求解一个由方程和约束组成的欠定线性系统,然后找到使成本函数最小化的特定解.这需要在将在 .NET 和 Mono 中运行的纯可移植托管代码中完成.有哪些免费可用的库可供我用来实现这一点? 我发现免费库提供的所有优化算法仅支持单个变量的区间约束,例如0 ,而不是像 x + 2y
..
我正在使用 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| 的大小可以很大(大约有数千个元素).如果无法在合理的时间内
..
我想在我的模型(它是 rcpsp 模型)中对所有使用的资源求和我怎样才能在 CPLEX 中做到这一点?一开始我是这样写的: forall(k in K)forall(t in 1..f[nAct])sum(i in I:f[i]-d[i]
..
我试图找到一个函数的局部最小值,并且参数有一个固定的总和.例如, Fx = 10 - 5x1 + 2x2 - x3 条件如下, x1 + x2 + x3 = 15 (x1,x2,x3) >= 0 其中 x1、x2 和 x3 的总和具有已知值,并且它们都大于零.在 R 中,它看起来像这样, Fx = function(x) {10 - (5*x[1] + 2*x[2]
..
我有一个用 Java 编写的神经网络,它使用定义如下的 sigmoid 传递函数: private static double sigmoid(double x){返回 1/(1 + Math.exp(-x));} 这在使用网络的训练和计算过程中被多次调用.有没有办法加快这个速度?不是慢,只是用的多,所以这里的小优化会带来很大的整体收益. 解决方案 对于神经网络,您不需要 sigmoi
..
我遇到了scipy 中的盆地跳跃算法并创建了一个简单的问题来理解如何使用它,但它似乎无法正确解决该问题.可能是我做错了什么. 代码如下: import scipy.optimize as spo将 numpy 导入为 npminimumr_kwargs = {“方法":“BFGS"}f1=λ x: (x-4)def mybounds(**kwargs):x = kwargs["x_new"
..
我读过整数规划要么非常棘手要么不可能SciPy 并且我可能需要使用 zibopt 之类的东西在 Python 中做到这一点.但我真的认为我可以通过为 SciPy 优化的向量中的每个元素创建一个“二进制"约束来实现. 为此,我使用了 http://docs.python-guide.org/en/latest/writing/gotchas/#late-binding-closures并为每个
..
我希望学生在作业中解决二次程序,而无需安装额外的软件,如 cvxopt 等.是否有仅依赖于 NumPy/SciPy 的 Python 实现可用? 解决方案 我遇到了一个很好的解决方案,想把它拿出来.在 NICTA 的 ELEFANT 机器学习工具包中有一个 LOQO 的 Python 实现(http://elefant.forge.nicta.com.au 发布时).看看 optimiza
..
给定一组 3D 点,一般的问题是求平面方程的 a, b, c 系数,形式如下: z = a*x + b*y + c 这样得到的平面最适合那组点. 在 这个 SO 答案中,函数 scipy.optimize.minimize 就是用来解决这个问题的. 它依赖于对系数的初始猜测,并最小化一个误差函数,该函数将每个点到平面表面的距离相加. 在此代码(基于这个其他 SO 答案) sc
..
我使用 scipy.optimize 来最小化 12 个参数的函数. 我已经开始优化了,还在等待结果. 有没有办法强制 scipy.optimize 显示它的进度(比如已经完成了多少,当前最好的点是什么)? 解决方案 正如 mg007 所建议的,一些 scipy.optimize 例程允许回调函数(不幸的是,leastsq 目前不允许这样做).下面是一个使用“fmin_bfgs
..
全部, 当你训练一个包含大量样本的大型模型时,一些样本在参数更新时可能会导致NaN梯度. 我想找出这些样本.同时我不希望这批样本的梯度更新模型的参数,因为这可能导致模型的参数为 NaN. 那么有没有人有解决这个问题的好主意? 我的代码如下: # 创建一个优化器.参数 = tf.trainable_variables()opt = tf.train.AdamOptimiz
..
是否有可靠且文档齐全的 Python 库,可以快速实现在有向图中找到最大流和最小割的算法? pygraph.algorithms.minmax.maximum_flow 来自 python-graph 解决了这个问题,但是它非常缓慢:在有 4000 个节点和 11000 条边的有向图中找到最大流和最小割需要 > 1 分钟.我正在寻找至少快一个数量级的东西. 悬赏:我在这个问题上悬赏,看
..
给定两个范围的正整数 x: [1 ... n] 和 y: [1 ... m] 和从 0 到 1 的随机实数 R,我需要从 x 和 y 中找到一对元素 (i,j),使得 x_i/y_j 最接近 R. 找到这对的最有效方法是什么? 解决方案 使用 Farey 序列 这是一个简单且数学上漂亮的算法来解决这个问题:运行二分搜索,在每次迭代中,下一个数字由中位数公式(如下)给出.根据法里
..
我有一个有 64 个变量的 Python 函数,我尝试在最小化函数中使用 L-BFGS-B 方法对其进行优化,但是这种方法对初始猜测有很强的依赖性,并且未能找到全局最小值. 但我喜欢它为变量设置界限的能力.有没有一种方法/函数可以在有变量边界的同时找到全局最小值? 解决方案 这可以通过 scipy.optimize.basinhopping 来完成.Basinhopping 是一种旨
..
我正在 scipy/numpy 中寻找一个优化例程,它可以解决非线性最小二乘类型问题(例如,将参数函数拟合到大型数据集)但包括边界和约束(例如最小值和最大值)待优化参数).目前我正在使用 mpfit 的 python 版本(从 idl 翻译...):这显然不是最佳的,尽管它工作得很好. python/scipy/etc 中的高效例程可能很棒!在这里非常欢迎任何输入:-) 谢谢!
..
只是寻找一些方向,我意识到给出的示例可以使用蛮力迭代来解决,但我正在寻找一个更优雅的(即数学?)解决方案,它可能会解决更大的示例(比如20x20 或 30x30).这完全有可能无法做到,而且我在想出一种不依赖蛮力的方法方面几乎没有成功...... 我有一个矩阵(称为 A),它是 nxn.我希望从矩阵 A 中选择一个点的子集(称为 B).该子集将由 n 个元素组成,其中从 A 的每一行和每一列
..