mirror of
https://github.com/kalmarek/PropertyT.jl.git
synced 2024-10-19 09:05:36 +02:00
rework addconstraints! with progress printing
This commit is contained in:
parent
db55927729
commit
8a6707eddd
@ -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]
|
||||||
|
idx = [π for π in 1:endof(data.Us) if size(data.Us[π],2) != 0]
|
||||||
|
|
||||||
for t in 1:l
|
for t in 1:l
|
||||||
|
if t % 100 == 0
|
||||||
|
print(t, ", ")
|
||||||
|
end
|
||||||
# lhs = constrLHS(m, data, t)
|
# lhs = constrLHS(m, data, t)
|
||||||
lhs = constrLHS(m, data.cnstr[t], data.Us, Ust, data.dims, data.Ps)
|
lhs = constrLHS(m, data.cnstr[t], data.Us[idx], Ust[idx], data.dims[idx], data.Ps[idx])
|
||||||
|
|
||||||
d, d² = data.laplacian[t], data.laplacianSq[t]
|
d, d² = data.laplacian[t], data.laplacianSq[t]
|
||||||
if lhs == zero(lhs)
|
# if lhs == zero(lhs)
|
||||||
if d == 0 && d² == 0
|
# if d == 0 && d² == 0
|
||||||
info("Detected empty constraint")
|
# info("Detected empty constraint")
|
||||||
continue
|
# continue
|
||||||
else
|
# else
|
||||||
warn("Adding unsatisfiable constraint!")
|
# warn("Adding unsatisfiable constraint!")
|
||||||
end
|
# end
|
||||||
end
|
# end
|
||||||
JuMP.@constraint(m, lhs == d² - λ*d)
|
JuMP.@constraint(m, lhs == d² - λ*d)
|
||||||
end
|
end
|
||||||
|
println("")
|
||||||
end
|
end
|
||||||
|
|
||||||
function init_model(Uπs)
|
function init_model(Uπs)
|
||||||
|
Loading…
Reference in New Issue
Block a user