model ModelName options noimplicit uses "mmxprs" ! uses "mminsight" ! uncomment this line for an Xpress Insight model parameters CAP = 1533 end-parameters forward procedure print_sol(num:integer) declarations CL = 1..7 !clienti SIZE, PRICE, COST: array(CL) of integer x: array(CL) of mpvar dem: array(CL) of linctr !array di vincioli lineari profit:linctr end-declarations SIZE::[10, 8, 6, 9, 15, 10, 12] PRICE::[1000, 600, 600, 800, 1200, 800, 1100] COST::[80, 70, 85, 80, 73, 70, 80] writeln("Begin running model") profit := sum(i in CL) (PRICE(i)-SIZE(i)*COST(i))*x(i) !forall(i in CL) writeln(i," ",PRICE(i)-SIZE(i)*COST(i)) sum(i in CL) SIZE(i)*x(i) <= CAP setparam("XPRS_VERBOSE",true) maximize(profit) print_sol(1) declarations DISP: array(CL) of integer end-declarations DISP::[12, 31, 20, 25, 50, 40, 60] forall(i in CL) dem(i) := x(i) <= DISP(i) maximize(profit) print_sol(2) forall(i in CL) x(i) is_integer maximize(profit) print_sol(3) !forall(i in CL) sethidden(dem(i),true) sethidden(dem(7),true) maximize(profit) writeln(getobjval) print_sol(4) writeln("End running model") ! printing the solution procedure print_sol(num:integer) writeln("Problem ",num,": profit = ",getobjval) forall(i in CL) write(if(getsol(x(i)) > 0," " + i + ": " + getsol(x(i))+"\n","")) writeln end-procedure end-model