proc optmodel; set Lane={'AB','BC','CA','CB'}; set Carrier={'I','II'}; number Bids{Lane,Carrier}=[ 500 525 500 475 500 525 475 500]; number ServiceLevel{Lane,Carrier}=[ 97 95 92 88 90 95 90 85]; number AdjBids{i in Lane, j in Carrier}=(92-ServiceLevel[i,j])*10+Bids[i,j]; var Loads{Lane,Carrier} integer >=0 ; minimize Z=sum{i in Lane, j in Carrier}AdjBids[i,j]*Loads[i,j]; con LoadsperLane{i in Lane}: sum{j in Carrier}Loads[i,j]=10; solve; print Loads Z; quit;