rework addconstraints! with progress printing

This commit is contained in:
kalmarek 2017-08-27 19:00:49 +02:00
parent db55927729
commit 8a6707eddd
1 changed files with 23 additions and 17 deletions

View File

@ -127,24 +127,30 @@ function constrLHS(m::JuMP.Model, cnstr, Us, Ust, dims, vars, eps=100*eps(1.0))
return @expression(m, sum(vecdot(M[π], vars[π]) for π in 1:endof(Us))) return @expression(m, sum(vecdot(M[π], vars[π]) for π in 1:endof(Us)))
end end
function addconstraints!(m::JuMP.Model, data::OrbitData, l::Int=length(data.laplacian); var::Symbol = ) function addconstraints!(m::JuMP.Model, data::OrbitData, l::Int=length(data.laplacian); var::Symbol=)
λ = m[var] λ = m[var]
Ust = [U' for U in data.Us] Ust = [U' for U in data.Us]
for t in 1:l idx = [π for π in 1:endof(data.Us) if size(data.Us[π],2) != 0]
# lhs = constrLHS(m, data, t)
lhs = constrLHS(m, data.cnstr[t], data.Us, Ust, data.dims, data.Ps)
d, = data.laplacian[t], data.laplacianSq[t] for t in 1:l
if lhs == zero(lhs) if t % 100 == 0
if d == 0 && == 0 print(t, ", ")
info("Detected empty constraint") end
continue # lhs = constrLHS(m, data, t)
else lhs = constrLHS(m, data.cnstr[t], data.Us[idx], Ust[idx], data.dims[idx], data.Ps[idx])
warn("Adding unsatisfiable constraint!")
end d, = data.laplacian[t], data.laplacianSq[t]
end # if lhs == zero(lhs)
JuMP.@constraint(m, lhs == - λ*d) # if d == 0 && d² == 0
end # info("Detected empty constraint")
# continue
# else
# warn("Adding unsatisfiable constraint!")
# end
# end
JuMP.@constraint(m, lhs == - λ*d)
end
println("")
end end
function init_model(Uπs) function init_model(Uπs)