Solution
Example: Two draughts at each corner and one draught at each edge.

Xpress-Mosel Model

model 'twelve'

! Description  : Twelve draughts puzzle
! Source       : Boris Kordemsky - The Moscow Puzzles (P36)
! Date written : MAGIC 16/12/92, Xpress-MP 22/6/98, Mosel 16/4/03
! Written by   : M J Chlond 

  uses 'mmxprs'

  parameters
    s = 4
  end-parameters

  declarations
    S = 1..s
    x: array(S,S) of mpvar
  end-declarations

  ! arbitrary objective
  any:= x(2,2)
  
  ! total of 12 pieces placed
  cona:= sum(i in S,j in S) x(i,j) = 12
  
  ! 5 pieces on each side 
  conb:= sum(j in S) x(1,j) = 5 
  conc:= sum(i in S) x(i,1) = 5 
  cond:= sum(j in S) x(4,j) = 5 
  cone:= sum(i in S) x(i,4) = 5
  
  ! inner squares unused 
  conf:= sum(i in 2..3,j in 2..3) x(i,j) = 0

  forall(i in S, j in S)
    x(i,j) is_integer
    
  minimise(any)
  
  ! display results
  write('x =')
  writeln
  forall(i in S) do
    forall(j in S)
      write(getsol(x(i,j)),' ')
    writeln
  end-do
  
end-model