首页 > 解决方案 > 终端进程以退出代码 3221226356(Julia 和 VS 代码)终止

问题描述

我正在尝试在 VS Code for Julia 中运行以下代码(或直接在 Julia 上)。这是一个计算正态分布(来源)均值和方差的最大似然估计量的简单示例:


Random.seed!(1234)

n = 1_000
data = randn(n)

mle = Model(optimizer_with_attributes(Ipopt.Optimizer, "print_level" => 0))
@NLparameter(mle, problem_data[i = 1:n] == data[i])

μ0 = randn()
σ0 = rand() + 1
@info "Starting guess, mean: $μ0, std: $σ0"

@variable(mle, μ, start = μ0)
@variable(mle, σ >= 0.0, start = σ0)

@NLexpression(mle, loglikelihood,
    -(n / 2) * (log(2π) + 2 * log(σ)) - inv(2 * σ^2) * sum((xi - μ)^2 for xi in problem_data)
)

@NLobjective(mle, Max, loglikelihood)

optimize!(mle)

这是使用 的非线性优化问题JuMP,运行时optimize!(mle) 我在 VS Code 中得到“终端进程终止,退出代码为 3221226356”。同样,当我直接在 Julia 中运行它时,它会完全关闭。(我有最新版本)(我在另一台计算机上尝试过,一切正常)。任何帮助将不胜感激!

PS我已经看到它可能与“堆损坏问题”有关,但我不知道这意味着什么/如何解决它。

标签: juliaheap-corruptionjulia-jump

解决方案


这已在 Julia discourse 上交叉发布,我们将继续在那里对其进行调试:https ://discourse.julialang.org/t/cant-run-simple-jump-example/67938

它是:

  • VS-Code 中的一个问题(尽管“当我直接在 Julia 中运行它时”可能会排除这种情况)
  • Ipopt 的问题,可能是由于它安装了旧版本,或者与该用户的系统奇怪的不兼容

无论哪种方式,这可能都很难调试。


推荐阅读