proc optmodel; set Plant = {"P1", "P2"}; set Region = {"R1", "R2", "R3"}; number demand{Region} = [25 95 80]; number capacity{Plant} = [100 125]; number cost{Plant, Region} = [ 250 325 445 275 260 460 ]; var flow{Plant, Region} >= 0; minimize z = sum{i in Plant, j in Region}flow[i,j]*cost[i,j]; con capacitycon{i in Plant}: sum{j in Region}flow[i,j] <= capacity[i]; con demandcon{j in Region}: sum{i in Plant}flow[i,j] >= demand[j]; solve; print z flow; expand; quit;