set SORGENTI; set DESTINAZIONI; param costo_unitario_trasporto{SORGENTI, DESTINAZIONI}; param disp_sorgente{SORGENTI} >=0; param rich_destinazione{DESTINAZIONI}>=0; check sum{i in SORGENTI} disp_sorgente[i]= sum{j in DESTINAZIONI} rich_destinazione[j]; var x{SORGENTI,DESTINAZIONI}>=0; subject to uso_sorgente{i in SORGENTI}: sum{j in DESTINAZIONI} x[i,j]=disp_sorgente[i]; subject to richiesta_soddisfatta{j in DESTINAZIONI}: sum{i in SORGENTI} x[i,j]=rich_destinazione[j]; minimize costo_totale : sum{i in SORGENTI, j in DESTINAZIONI} costo_unitario_trasporto[i,j]*x[i,j];