问题标签 [julia-jump]
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.
optimization - @NLConstraint 带有矢量化约束 JuMP/Julia
我正在尝试解决一个涉及指数总和相等的问题。
这就是我将如何进行硬编码:
这适用于其余代码。但是,当我尝试对上述任意一组方程执行此操作时,会出现错误。这是我的代码:
其中LHSSum
和RHSSum
是包含需要求幂然后求和的元素数组的数组。那就是LHSSum[1]=[x[1],x[2],x[3],...,x[n]]
。x[i]
类型的变量在哪里JuMP.Variable
。请注意length(LHSSum)=length(RHSSum)
.
返回的错误是:
因此,一个简单的解决方案是简单地在@NLconstraint
函数之外进行所有求幂和求和,因此输入将是一个标量。然而,这也带来了一个问题,exp(x)
因为 x 是类型,所以没有定义JuMP.variable
,而 exp 期望类型为 real。这很奇怪,因为当函数在@NLconstraint()
. 即,当我编码这一行@NLconstraint(m,exp(x)==exp(z)+exp(y))
而不是前面的行时,不会引发任何错误。
我想做的另一件事是泰勒级数扩展,但这也带来了一个问题,因为它进入了@NLconstraint
大于 2 的幂,然后我遇到了同样的向量化问题。
所以我觉得卡住了,我觉得如果 JuMP 允许@NLconstraint
像它一样进行矢量化评估@constraint
,这甚至都不是问题。另一个解决方法是,如果 JuMP 实现它自己的 exp 函数以允许JuMP.Variable
类型的幂运算。但是,实际上我看不到使用 JuMP 框架解决这个问题的方法。你们有没有解决这个问题的方法?我缺少任何聪明的解决方法?
mathematical-optimization - PuLP的set partition例子好像做的太多了?
我正在尝试解决与此处示例非常相似的问题: https ://pythonhosted.org/PuLP/CaseStudies/a_set_partitioning_problem.html
这使用称为 PuLP 的优化框架在婚礼上为客人分配座位。
为了提供一些背景信息,我有 N 位客人,T 桌,每桌最多 S 位。我有一个成本矩阵(N x N),它表示每位客人想与另一位客人坐在一起的程度。
在第一个代码部分,他们正在创建所有可能表的列表:
possible_tables = [tuple(c) for c in pulp.allcombinations(guests,
max_table_size)]
这对我来说没有意义。我没想到候选表的生成会在算法之外完成。
这与仅仅N choose K
生成候选者、使用成本矩阵对生成的表进行评分并选择最佳表有很大不同吗?
我不限于使用纸浆。I've looked at cvxpy, jump, mini-zinc, etc. I'm just having trouble how to formulate the objective and constraint when there is such interaction among elements of selected sets (it's as if items in the knap-sack problem hated或相爱!)
julia - 如何在 Julia 中快速求解中等规模的 QP 公式?
这是一个新手问题。我正在尝试最小化以下 QP 问题:
x'Qx + b'x + c,对于 Ax >= lb 其中:
- x 是坐标向量,
- Q 是一个稀疏、强对角占优的对称矩阵,通常大小为 500,000 x 500,000 到 1M x 1M
- b 是常数向量
- c 是一个常数
- A 是单位矩阵
- lb 是一个包含向量 x 下界的向量
以下是我尝试过的软件包:
Optim.jl:他们有一个简单的“盒子”约束的原始内点算法。我尝试过使用 inner_optimizer,将其设置为 GradientDescent()/ConjugateGradient()。无论如何,这对我的问题集来说似乎很慢。
IterativeSolver.jl:他们有一个共轭梯度求解器,但他们没有办法为 QP 问题设置约束。
MathProgBase.jl:他们有一个用于二次规划的专用求解器,称为 Ipopt()。它对于通常在 3Kx3K 矩阵左右的小型数据集非常有效,但对于我正在查看的那种数据集来说它需要的时间太长了。我知道将线性系统求解器从 MUMPS 更改为 HSL 或 WSMP 可能会产生显着的改进,但是有没有办法通过 Julia 将第三方线性系统求解器添加到 Ipopt() 中?
OSQP.jl:对于我感兴趣的数据集,这又需要很长时间才能收敛。
另外我想知道是否有人使用过大型数据集,他们能否提出一种方法来使用现有的包在 Julia 中快速解决这种规模的问题?
julia - 添加包时如何使用 Julia 规避预编译错误
我正在尝试在 Julia 编程中使用三个不同的包(使用 Atom IDE,值得一提)。
我对朱莉娅很陌生,所以请原谅任何无知!这是我所拥有的:
这些运行成功。
然后我有:
“使用 DataFrames”行成功执行,但之后我收到预编译/安装错误:
我已经尝试了很多方法来让这个包工作,但到目前为止还没有运气。谁能帮帮我?提前致谢!
julia - JuMP 环境中的元素乘法
我正在尝试在 JuMP 环境中实现以下约束:
不幸的是,我收到以下错误ERROR: MethodError: no method matching append
但是单独尝试元素乘法不会返回任何错误并将其正确地实现到模型中。
在这里,您有我正在使用的最小示例。
julia - 最小化 Julia JuMP 中的最大值
因此,我梳理了与 Julia JuMP 相关的各种网站,并使用函数作为 @objective 或 @NLobjective 的参数,但让我尝试说明我的问题。我确定我在做一些愚蠢的事情,这是一个快速修复。
这是一个简短的代码片段以及我想做的事情:
现在根据我的理解,“最大”函数使问题成为非线性问题,并且在 JuMP 目标函数中是不允许的,所以人们会做以下两件事之一:
(1)玩辅助变量+约束的把戏,或者
(2) 创建一个函数,然后在 JuMP 中“注册”这个函数。
但是,我似乎不能正确地做任何一个。
这是使用辅助变量+约束技巧的尝试:
我希望在完成最小化最大值这一看似微不足道的任务时获得一些帮助。
另外,应该注意的是,这是我正在尝试解决的 MILP 问题。我之前使用 OPL 的 ILOG 脚本在 CPLEX 中实现了这个问题,其中这个目标函数看起来要简单得多。虽然这可能只是我对使用 JuMP 的无知。
谢谢。
julia - JuMP 和 Ipopt 出错
我正在尝试在 Julia v0.7.0 下使用 Jump 和 Ipopt。当我尝试构建模型时:
我收到以下错误消息:
我正在使用以下版本的软件包:
有任何想法吗?谢谢!
julia - 二次等式约束:Julia+Jump+Gurobi
我是 julia 的新手,在使用 gurobi 作为主要求解器时如何处理二次等式约束。您可以快速查看以下清单吗?我已经知道使用 gurobi 无法解决这样的结构,但是我如何才能绕过这个困难,从而对我的模型强制执行条件呢?
[清单][1]
导致问题的相关和定义变量:
- x:二元决策变量
- s: s>=0
我会很高兴有任何帮助!
安德烈
julia - 无法在 Julia 中“添加 JuMP”
我正在尝试添加JuMP
,但它返回错误。
看起来 Julia 仅限于版本:uninstalled — no versions left
. 知道这里可能出了什么问题吗?
julia - 访问字典中的值时出现 Julia 键错误
在尝试运行此代码时,只要我尝试访问需求 [i],Julia 就会不断给我错误消息“KeyError: key 18=>63 not found”。似乎每次 dem 中的元素大于 50 时都会发生此错误。
不知道如何解决这个问题。