Skip to content

Commit 2bc33d4

Browse files
committed
Update magic_square with error function instead of predicate
1 parent 0375094 commit 2bc33d4

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

Diff for: src/magic_square.jl

+4-5
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,16 @@ function magic_square(n, ::Val{:JuMP})
22
N = n^2
33
model = JuMP.Model(CBLS.Optimizer)
44
magic_constant = n * (N + 1) / 2
5-
Σeq = x -> sum(x) == magic_constant
65

76
@variable(model, 1 X[1:n, 1:n] N, Int)
87
@constraint(model, vec(X) in AllDifferent())
98

109
for i in 1:n
11-
@constraint(model, X[i,:] in Predicate(Σeq))
12-
@constraint(model, X[:,i] in Predicate(Σeq))
10+
@constraint(model, X[i,:] in SumEqualParam(magic_constant))
11+
@constraint(model, X[:,i] in SumEqualParam(magic_constant))
1312
end
14-
@constraint(model, [X[i,i] for i in 1:n] in Predicate(Σeq))
15-
@constraint(model, [X[i,n + 1 - i] for i in 1:n] in Predicate(Σeq))
13+
@constraint(model, [X[i,i] for i in 1:n] in SumEqualParam(magic_constant))
14+
@constraint(model, [X[i,n + 1 - i] for i in 1:n] in SumEqualParam(magic_constant))
1615

1716
return model, X
1817
end

0 commit comments

Comments
 (0)