Dear Rob, Thanks for your message. I have removed number M as well as constraint : con Inspections {j in Crossdocks} : sum {i in Factories} inflow[i,j] <=M * Y[j]; It seems to work well now. Please, can you have a final look and tell me if everything is fine? I am getting no more any error messages. proc optmodel; set Factories= {'Kansas','NorthCarolina','NewHampshire','SouthDakota'}; set DCs= {'Virginia','Missouri','California','Florida'}; set Crossdocks= {'Wisconsin','Minnesota', 'SouthCarolina'}; number incost{Factories,Crossdocks}=[ 36 26 31 43 28 48 37 44 42 32 28 30 ]; number outcost {Crossdocks,DCs}=[ 37 29 15 26 30 42 40 20 16 27 46 42 ]; number capacity {Factories}=[ 37 19 42 25]; number demand {DCs}=[ 3 12 15 15]; number FixedCost {Factories,Crossdocks} = [500 220 200 180 650 950 800]; number MaxUse {Crossdocks} = [37 43 31]; var inflow {Factories,Crossdocks} >= 0; var outflow {Crossdocks,DCs} >= 0; var Y {Factories,Crossdocks} binary; minimize TotalCost =sum {j in Crossdocks} ( sum {i in Factories} ( inflow[i,j]*incost[i,j] + Y[i,j]*FixedCost[i,j] )+sum {j in Crossdocks,k in DCs} outcost[j,k]*outflow[j,k]); con Max_Supply {i in Factories} : sum {j in Crossdocks} inflow[i,j] <=capacity[i]; con No_Stock {j in Crossdocks} : sum {i in Factories} inflow[i,j] = sum {k in DCs} outflow[j,k]; con Min_Demand {k in DCs} : sum {j in Crossdocks} outflow[j,k] >=demand[k]; con Max_Use{j in Crossdocks} : sum {i in Factories} inflow[i,j] <=MaxUse[j]; solve; print inflow outflow TotalCost; quit; Thank you
... View more