param n:=8; set V:={1..n}; set W:={1..(2*n)}; var x[V*V] binary; maximize fobj: sum in V*V: x[i,j]; subto c1: forall in V: sum in V: x[i,j]<=1; subto c2: forall in V: sum in V: x[i,j]<=1; subto c3: forall in W: sum in V*V with i+j==k: x[i,j]<=1; subto c4: forall in W: sum in V*V with i-j+n==k: x[i,j]<=1;