问题标签 [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.
memory-management - JuMP 不释放内存
为什么在这种简单的情况下垃圾收集器无法释放 JuMP 分配的所有内存?@time 也只返回 71M。
输出
julia - JuMP - MethodError: `getindex` 没有匹配 getindex(::Function, ::Int64) 的方法
我必须计算这个多目标问题的理想向量。我无法访问@objective 中functs_BK1() 的第一个和第二个函数。知道如何使所有动态并支持 n 函数吗?
julia - 如何检查用户定义的函数是否已在 Julia/JuMP 中注册
我想检查一个用户定义的函数是否已经在 JuMP/julia 中注册。这是一个例子:
从评论中应该很明显,第二次使用需要检查。据我所知,JuMP 在全局级别注册函数——一旦注册,它们就不能在本地重新定义(对吗?如果可以,这也解决了我的问题!)。
python - 将 Julia JuMP 转换为 Python PuLP
我偶然发现了一个我想从 Julia 转换为 Python 的软件(对 Julia 没有太多经验)。我遇到的主要问题是我不明白在我用评论#PROBLEM BELOW/ABOVE 标记的部分中到底发生了什么
滑板队是一个 180 x 10 矩阵(180 名滑板手和 10 支球队),球队存储为二进制数组,其中滑板队 [0] 给出球员 0 的数组,例如:[1, 0, 0, 0, 0, 0, 0 , 0, 0, 0]。
是否像这样循环:
我也找不到任何关于使用 3 个参数的文档@addConstraint
。第一个是您要添加的问题,第三个是您要添加的约束。第二个是什么?
julia - 列出 JuMP 中可用的求解器
我安装JuMP
并尝试初始化 a Model()
,同时我想根据可用的内容指定求解器。为此,我如何获得可用求解器的列表?
julia - JuMP 约束宏更改了先前声明的变量的类型
我有一个简单的数学程序,我正在尝试解决:
A 是一些具有类型的矩阵Array{Float64,2
该行:
@constraint(m, x, sum(x)==1))
x
将from的类型更改Array{JuMP.Variable,1}
为JuMP.ConstraintRef{JuMP.Model,JuMP.GenericRangeConstraint{JuMP.GenericAffExpr{Float64,JuMP.Variable}}}
。
由于
x
先前已被声明为变量,因此类型不应该保持不变吗?(此外,如果执行上述行,一切仍然有效,但getvalue
不会由于类型的变化。)有没有办法在不改变类型的情况下添加求和约束
x
performance - 在非线性求解器中,什么影响求解器时间与 NLP 函数评估?
我在理解非线性优化中的性能如何受求解器引擎接口的特定方式影响时遇到了一些困难。
我们有一个优化模型,它的第一个版本是用 GAMS 编写的。IPOPT(一种常见的 FOOS 非线性求解器引擎)在 IPOPT(无函数评估)中为每个优化返回 1.4 CPU 秒的执行时间,在函数评估中返回 0.2 CPU 秒的执行时间。
当我们将模型转换为 C++(为了更好地考虑模型的非优化组件)并通过其 C++ API 连接 IPOPT(使用 ADOL-C 和 ColPack 进行 AD)时,我们在 IPOPT 中获得了 0.7 秒的执行时间和 9.4 秒函数评估中的秒数(IPOPT 的改进可能是由于通过源代码编译 IPOPT,我们能够使用 GAMS 版本的 IPOPT 中不可用的更好的线性求解器)。
因此,使用 C++(诚然使用了优化不佳的代码)给我们的结果比 GAMS 慢了约 50 倍,部分由更好的求解器时间补偿。
我们现在正在评估将模型转换为其他语言的可行性,无论是 Python 与 Pyomo,还是 Julia 与 JuMP。
但我们首先想了解求解器在每一步所做的函数评估如何依赖于所实现的特定语言。
使用 C++,很明显创建优化模型的函数在每次迭代时都直接执行(评估),因此它们的实现方式很重要(特别是,梯度和 hessian 每次都重新计算,至少在我们的实现中) .
Pyomo 和 JuMP 怎么样?是在 Python 和 Julia 中评估的每次迭代,还是 Pyomo 和 JuMP 会首先在(我猜)C 中渲染模型,计算(而不是评估)梯度和粗麻布,然后是这个“C 版本”每次都会被评估?这显然会产生很大的不同,尤其是对于 python ..
julia - 如何使用 JuMP/GLPK 获得求解时间
我无法通过 GLPK 获得使用 JuMP 的 MIP 模型的求解时间和节点数。使用 Gurobi 它工作正常。这是重现我得到的错误的最小示例:
我得到错误:
错误:MethodError:没有方法匹配 getsolvetime(::GLPKMathProgInterface.GLPKInterfaceMIP.GLPKMathProgModelMIP) 最接近的候选是:getsolvetime(::JuMP.Model) at ~/.julia/v0.5/JuMP/src/JuMP.jl:205
getsolvetime( ::MathProgBase.SolverInterface.LPQPtoConicBridge) at ~/.julia/v0.5/MathProgBase/src/SolverInterface/lpqp_to_conic.jl:199
getsolvetime(::Int64) at ~/.julia/v0.5/MathProgBase/src/SolverInterface /SolverInterface.jl:27
... 在 ~/.julia/v0.5/JuMP/src/JuMP.jl:208 的 getsolvetime(::JuMP.Model) 中
使用getnodecount方法时会显示一条等效消息。我从文档中了解到,这些功能只有在实现时才可用。此错误是否意味着它们未实施?有没有办法访问内部模型的任何这些信息?
任何方向表示赞赏
谢谢你。
julia - Julia LoadError: MethodError: 没有方法匹配 addconstraint(::Int64, ::Jump.GenericRangeConstarint{JuMP.GenericAffExpr{Float64,JuMP.Variable}})
我正在尝试运行以下文件。我尝试逐个上传。这就是为什么某些组件被注释掉的原因。无论我激活了哪个组件,我都会收到约束部分的此错误。
特别是“约束上传”的原因是什么?