set INSIEME1; set INSIEME2; check card(INSIEME1)=card(INSIEME2); param costo{INSIEME1,INSIEME2}; var x{INSIEME1,INSIEME2}>=0; subject to un_solo_elemento_in_insieme2 {i in INSIEME1}: sum{j in INSIEME2} x[i,j] =1; subject to un_solo_elemento_in_insieme1 {j in INSIEME2}: sum{i in INSIEME1} x[i,j]=1; minimize incompatibilita_totale : sum{i in INSIEME1, j in INSIEME2} costo[i,j]*x[i,j];