SCIPで覆面算その2
SCIPで
いか+か=かい
を解いた。
答は 89+9=98
model.writeProblem("ikakakai.lp")
で LP で問題文が書ける。
本来はここをシコシコ書く。
pyscipopt だと便利に書ける。
というか書かなきゃいけない。
ポイントをひとつ。
い は
0123456789のどれかなので
i0 いは0
i1 いは1
i2 いは2
........
i9 いは9
と全部バイナリー変数で持ったほうがいい。<<<<<
よろしく。
\ SCIP STATISTICS
\ Problem name : いかかかい
\ Variables : 22 (20 binary, 2 integer, 0 implicit integer, 0 continuous)
\ Constraints : 7
Minimize
Obj: 0 i0
Subject to
c1: +1 i0 +1 i1 +1 i2 +1 i3 +1 i4 +1 i5 +1 i6 +1 i7 +1 i8 +1 i9 = +1
c2: +1 k0 +1 k1 +1 k2 +1 k3 +1 k4 +1 k5 +1 k6 +1 k7 +1 k8 +1 k9 = +1
c3: +1 iscore -1 i1 -2 i2 -3 i3 -4 i4 -5 i5 -6 i6 -7 i7 -8 i8 -9 i9 = +0
c4: +1 kscore -1 k1 -2 k2 -3 k3 -4 k4 -5 k5 -6 k6 -7 k7 -8 k8 -9 k9 = +0
c5: +1 i0 = +0
c6: +1 k0 = +0
c7: +9 iscore -8 kscore = +0
Bounds
0 <= i0 <= 1
0 <= i1 <= 1
0 <= i2 <= 1
0 <= i3 <= 1
0 <= i4 <= 1
0 <= i5 <= 1
0 <= i6 <= 1
0 <= i7 <= 1
0 <= i8 <= 1
0 <= i9 <= 1
0 <= k0 <= 1
0 <= k1 <= 1
0 <= k2 <= 1
0 <= k3 <= 1
0 <= k4 <= 1
0 <= k5 <= 1
0 <= k6 <= 1
0 <= k7 <= 1
0 <= k8 <= 1
0 <= k9 <= 1
Binaries
i0 i1 i2 i3 i4 i5 i6 i7 i8 i9 k0 k1 k2 k3 k4 k5 k6 k7 k8 k9
Generals
iscore kscore
End