Dies ist ein Versuch, die folgende Frage zu beantworten: https://matheducators.stackexchange.com/questions/11757/small-data-sets-with-integral-sample-standard-deviationsquadratisch eingeschränkt MIQP mit julia und gurobi
So ist die Absicht des folgenden Codes ist Beispiele für kleine Datensätze mit ganzzahligen Standardabweichung zu finden. Das kann als ein quadratisch eingeschränktes gemischtes, ganzzahliges quadratisches Programm formuliert werden, daher versuche ich, Gurobin von Julia zu verwenden. Im Anschluss ist mein Code:
using JuMP
using Gurobi
m = Model(solver = GurobiSolver())
@variable(m, 0<= x[1:20] <= 100, Int)
@variable(m, Gj, Int)
@constraint(m, Gj == sum(x[1:20])/20)
@variable(m, Var, Int)
@constraint(m, Var == sum((x[1:20]-Gj).^2/19))
@variable(m, sd, Int)
@constraint(m, sd * sd == Var)
### We need some restrictions to avoid all equal, < or zero, solutions:
@constraint(m, sd >= 5)
@objective(m, Min, sd)
print(m)
status = solve(m)
println("Objective value: ", getobjectivevalue(m))
x = getvalue(x)
diese Ergebnisse in Laufen:
ERROR: Gurobi.GurobiError(10021, "Quadratic equality constraints")
Stacktrace:
[1] optimize(::Gurobi.Model) at /home/kjetil/.julia/v0.6/Gurobi/src/grb_solve.jl:7
[2] optimize!(::Gurobi.GurobiMathProgModel) at /home/kjetil/.julia/v0.6/Gurobi/src/GurobiSolverInterface.jl:294
[3] #solve#101(::Bool, ::Bool, ::Bool, ::Array{Any,1}, ::Function, ::JuMP.Model) at /home/kjetil/.julia/v0.6/JuMP/src/solvers.jl:173
[4] solve(::JuMP.Model) at /home/kjetil/.julia/v0.6/JuMP/src/solvers.jl:148
Irgendwelche Ideen?