标题: 【转载】SUDOKU 游戏的GAMS 版本 [打印本页] 作者: huashi3483 时间: 2009-11-14 05:19 标题: 【转载】SUDOKU 游戏的GAMS 版本 随便发一个sudoku的gams代码。最主要的是请大家理解set 里面mapping 的写法。 " i8 e' |+ n+ W& WSets r rows / r1*r9 /4 F) f4 W U' ^. S/ V
c columns / c1*c9 / & F+ o- Q- v4 D) T b blocks / b1*b9 /+ c4 k* ^1 {+ K: j# S, K3 y
v values / v1*v9 /5 P6 t1 U# H# t: _- h9 T; E! A4 \
br(b,r) / b1*b3 .r1*r3, b4*b6 .r4*r6, b7*b9 .r7*r9 / 3 ~( Q6 I3 k: t# G5 _3 Y bc(b,c) / (b1,b4,b7).c1*c3, (b2,b5,b8).c4*c6, (b3,b6,b9).c7*c9 / # R- ~( l0 i8 d6 c5 Z# R brc(b,r,c) block definitions ;, h+ J7 o6 ~ z9 l7 ~$ W1 i
0 C6 c) E6 Q3 I. N) w
brc(b,r,c) = br(b,r)*bc(b,c); ! v2 A G; [1 q & S6 S& s* M pTable problem(r,c) Hard problem with non-unique solution* U& ?" N# H4 L. k( B
c1 c2 c3 c4 c5 c6 c7 c8 c9 : n0 S5 u; R8 nr1 2 6 7 - Q# `; ^' @" sr2 6 2; p! `9 p+ N0 H8 ]- {: O
r3 4 8 1! x$ q6 ?$ J3 q8 g" P, O
r4 5 9 3 . \ H9 P- T% g6 P- U1 |+ {) b) Xr5 3 5- Z; l4 m; [; J' _
r6 2 8 7 ) D! ` g) d# jr7 1 : Q+ E; W2 m: s" Fr8 7 8 6 / n: N. L! L# C( K% q- vr9 5 3 8 ;. {) G" J$ B% R% [$ d' O. q
" M6 V; w/ K7 d; \5 I. e 5 J1 M1 P7 d/ t6 Z6 w: E) P. i+ Y( qBinary Variable X(r,c,v) assign value to cell (defined by row and column); $ Z% g( Y( U, P$ w! BVariable W objectiv value - anything;- W1 B9 J5 \( M% w" c' d8 H
; D3 w$ [4 D* G lequations eq1(r,c) exactly one value for each cell $ m) B5 D# `& Y; O* F F eq2(c,v) column entries have to be unique , {+ L, K/ E7 } x6 G5 [8 W* q J, m eq3(r,v) row entries have to be unique 5 w" y. h, t6 D( ]1 } j" N eq4(b,v) block entries have to be unique7 i1 R- V8 C% r7 D1 H
nobj definition of objective - anything;% Z# r( A3 b# |" `1 b