标题: 【转载】SUDOKU 游戏的GAMS 版本 [打印本页] 作者: huashi3483 时间: 2009-11-14 05:19 标题: 【转载】SUDOKU 游戏的GAMS 版本 随便发一个sudoku的gams代码。最主要的是请大家理解set 里面mapping 的写法。 5 @4 b. A- i, f6 G; H$ mSets r rows / r1*r9 / - k6 ]6 H" ^1 O5 q% r c columns / c1*c9 / 5 s$ X) ^: W( F' Y0 `2 u b blocks / b1*b9 / 1 p- O4 M4 l% m$ C3 b& V v values / v1*v9 / 4 {$ J, A: D; V5 f! I, j br(b,r) / b1*b3 .r1*r3, b4*b6 .r4*r6, b7*b9 .r7*r9 /3 y! Z1 K" k- R' j0 H6 q8 w& V1 s
bc(b,c) / (b1,b4,b7).c1*c3, (b2,b5,b8).c4*c6, (b3,b6,b9).c7*c9 /, z- p! S3 c% \& d# s3 W @
brc(b,r,c) block definitions ;4 [) D4 l) ^" L7 D9 K2 A
) N! _4 @. [3 G# i' A5 @% Y3 p
brc(b,r,c) = br(b,r)*bc(b,c);- l; ]' G# g9 g3 f D( ~3 ?0 Y
# z! Z" F1 r- C3 \, x; \Table problem(r,c) Hard problem with non-unique solution0 n" m- G% _- v% P6 `4 w& s0 `
c1 c2 c3 c4 c5 c6 c7 c8 c9' l% _: G& D# I0 d: ]& x
r1 2 6 7 ; j4 k( V% A3 q. O Rr2 6 2 - d4 } M: P, Nr3 4 8 1 E2 F0 _( @6 a% I
r4 5 9 37 K% Z0 C5 W9 T& R. ~; z
r5 3 5 # p3 q& m- N, D" X" Nr6 2 8 7# j$ C/ S5 y0 |1 w9 f
r7 1 8 B1 B% Z9 u3 H* m. Y+ p v% o: e& Er8 7 8 6: t( J9 E. m9 h0 [; B
r9 5 3 8 ;" i8 g9 E( d6 n) L" ^2 _) C
: g# F' H. C8 S
9 M& K8 x- t& o+ j, N( d; fBinary Variable X(r,c,v) assign value to cell (defined by row and column); 1 M2 p+ c+ I6 l% d! lVariable W objectiv value - anything;1 B1 ?8 ]: f0 J! y! `! E& s
4 c. q% Y3 s, f6 J* P: o0 u+ hequations eq1(r,c) exactly one value for each cell ; s7 G% b0 j& }# h eq2(c,v) column entries have to be unique , l5 J' \& r* S" ~3 } eq3(r,v) row entries have to be unique 5 y: A! {1 |# a w6 ?; o eq4(b,v) block entries have to be unique $ y/ o c# _* ?7 o( ~& }$ }* O8 I3 I6 H nobj definition of objective - anything;4 I# q6 B: K: _8 M