草庐IT

mathematical-optimization

全部标签

python - 使用 SciPy 最小化受线性等式约束的二次函数

我有一个相当简单的约束优化问题,但会根据我的操作方式得到不同的答案。让我们先完成导入和pretty-print功能:importnumpyasnpfromscipy.optimizeimportminimize,LinearConstraint,NonlinearConstraint,SR1defprint_res(res,label):print("\n\n*****",label,"*****\n")print(res.message)print("objfuncvalueatsolution",obj_func(res.x))print("startingvalues:",x0)

python - 编码细菌 : evolving mathematical behavior

我不打算在我的博客上放一个链接,但我没有任何其他方法可以阐明我的真正意思。文章很长,分为三个部分(1、2、3),但如果你好奇,值得一读。很久以前(至少5年)我编写了一个生成“数学细菌”的python程序。这些细菌是具有简单的基于操作码的遗传密码的python对象。你可以给他们一个数字,他们根据代码的执行返回一个数字。我随机生成它们的遗传密码,并对这些对象应用环境选择,产生类似于预定义预期值的结果。然后我让它们复制,引入突变,并进化它们。结果非常有趣,因为他们的遗传密码基本上学会了如何求解简单方程,即使训练数据集的值不同也是如此。现在,这东西只是个玩具。我有时间可以浪费,我想满足我的好奇

python - scipy.optimize.minimize(method='trust-constr') 不会在 xtol 条件下终止

我已经建立了一个具有线性等式约束的优化问题如下sol0=minimize(objective,x0,args=mock_df,method='trust-constr',bounds=bnds,constraints=cons,options={'maxiter':250,'verbose':3})objective是加权和函数,其系数/权重将被优化以使其最小化。由于我在系数和约束上有边界,所以我使用了trust-constrscipy.optimize.minimize内的方法.最小化可行,但我不明白终止条件。根据trust-constrdocumentation它应该终止于xtol

Python Pulp 与矩阵一起使用

在多年使用Matlab之后,我对Python还是很陌生。我正在尝试使用Pulp来设置整数线性程序。给定一个数字数组:{P[i]:i=1...N}我想最大化:sum(x_iP_i)受约束Ax和边界(基于矢量的边界)LB然而,在pulp中,我看不到如何正确地进行矢量声明。我正在使用:RANGE=range(numpy.size(P))x=pulp.LpVariable.dicts("x",LB_ind,UB_ind,"Integer")我只能输入个人界限(所以只有1个数字)。prob=pulp.LpProblem("Test",pulp.LpMaximize)prob+=pulp.lpSu

python - 使用 scipy.optimize 和 loglikelihood 查找 beta 二项式分布的 alpha 和 beta

如果成功概率p在二项式分布中具有形状参数α>0和β>0。形状参数定义成功的概率。我想找到α和β的值,它们从beta二项分布的角度最能描述我的数据。我的数据集players包含有关命中次数(H)、击球次数(AB)和转换次数(H/AB)很多棒球运动员。我借助JulienD在BetaBinomialFunctioninPython中的回答估算了PDFfromscipy.specialimportbetafromscipy.miscimportcombpdf=comb(n,k)*beta(k+a,n-k+b)/beta(a,b)接下来,我编写了一个我们将最小化的对数似然函数。defloglik

python - Tensorflow 可以用于多元函数的全局最小化吗?

我一直很好奇TF是否可以用于函数的全局优化。例如,它可以用来有效地找到Lennard-Jones势的基态吗?它会比现有的优化方法(例如Basin-Hopping)更好还是更差?我的部分研究涉及寻找大型多组分分子的基态。传统方法(BH等)对此有好处,但也很慢。我研究了TF,有些部分看起来足够强大,可以解决这个问题,尽管我有限的网络搜索似乎没有显示TF对这个问题的任何使用。 最佳答案 gradientdescent执行训练神经网络只考虑函数的局部区域。因此不能保证它会收敛到全局最小值(这对于大多数机器学习算法来说实际上很好;考虑到所考虑

python - scipy.optimize.leastsq 使用 NaN 调用目标函数

我正在使用scipy.optimize.leastsq尝试在存在噪声的情况下将许多参数拟合到真实世界的数据中。偶尔会从minpack中使用NaN调用目标函数。这是scipy.optimize.leastsq的预期行为吗?有没有比在这种情况下只返回NaN残差更好的选择?以下代码演示了该行为:importscipy.optimizeimportnumpyasnpxF=np.array([1.0,2.0,3.0,4.0])#TargetvalueforfitNOISE_LEVEL=1e-6#TherandomnoiselevelRETURN_LEN=1000#Theobjectivefunc

python - scipy.optimize.leastsq 使用 NaN 调用目标函数

我正在使用scipy.optimize.leastsq尝试在存在噪声的情况下将许多参数拟合到真实世界的数据中。偶尔会从minpack中使用NaN调用目标函数。这是scipy.optimize.leastsq的预期行为吗?有没有比在这种情况下只返回NaN残差更好的选择?以下代码演示了该行为:importscipy.optimizeimportnumpyasnpxF=np.array([1.0,2.0,3.0,4.0])#TargetvalueforfitNOISE_LEVEL=1e-6#TherandomnoiselevelRETURN_LEN=1000#Theobjectivefunc

Python 约束非线性优化

python中约束非线性优化的推荐包是什么?我要解决的具体问题是:我有一个未知的X(Nx1),我有M(Nx1)u向量和M(NxN)s矩阵。max[5thpercentileof(ui_T*X),iin1toM]st0当我开始解决这个问题时,我只有一个点估计u和s并且我能够用cvxpy解决上面的问题>。我意识到,我没有对u和s进行一次估计,而是得到了整个值分布,所以我想更改我的目标函数,以便我可以使用整个分布。上面的问题描述是我尝试以有意义的方式包含该信息。cvxpy不能用来解决这个问题,我试过scipy.optimize.anneal,但我似乎无法设置未知值的界限。我也看过pulp,但

Python 约束非线性优化

python中约束非线性优化的推荐包是什么?我要解决的具体问题是:我有一个未知的X(Nx1),我有M(Nx1)u向量和M(NxN)s矩阵。max[5thpercentileof(ui_T*X),iin1toM]st0当我开始解决这个问题时,我只有一个点估计u和s并且我能够用cvxpy解决上面的问题>。我意识到,我没有对u和s进行一次估计,而是得到了整个值分布,所以我想更改我的目标函数,以便我可以使用整个分布。上面的问题描述是我尝试以有意义的方式包含该信息。cvxpy不能用来解决这个问题,我试过scipy.optimize.anneal,但我似乎无法设置未知值的界限。我也看过pulp,但