用Lingo求解规划问题实例问题一:某公司打算向它的3个营业区增设6个销售店,每个营业区至少增设一个。从各区赚取的利润与增设的销售店个数有关,其数据如下表所示。试求各区应分配几个增设的销售店,才能使总利润最大。销售点增加数01234A区利润/万元100200280330340B区利润/万元2002**********C区利润/万元150160170180200 分析:要设置集合zone/A,B,C/,表示三个地区。因为获得的利润与地区和各地的销售点增加数均相关,所以可以仿照运输模型,用number/1..4/表示每个地区可选的销售点增加数,然后用一个派生集links(zone,number):c,profit,定义 profit(i,j)为在i地区新增j个销售点能获得的利润。可写出约束条件为:,所求函数为max=***@sum(links:c*profit);Lingo程序如下:model:sets:zone/A,B,C/;!A,B,C三个地区;number/1..4/; !各地区可选择新建的销售点数目,可选1~4中的一个数,通过links把zone和number联系起来;links(zone,number):c,profit; !若在i地区新建j个销售点,则c(i,j)=1,否则c(i,j)=(i,j)表示在i地区新建j个销售点的利润;endsetsdata:profit=200280330340210220225230160170180200;enddatamax=***@sum(links:c*profit);***@for(zone(I):***@sum(number(J):c(I,J))=1);!对于每一个地区,新建销售点的数目是一定的,c的和为1;***@sum(zone(I):***@sum(number(J):c(I,J)*J))=6;!三个地区新建的销售点总数为6;***@for(links(i,j):***@bin(c(i,j)));!每一个c(i,j)只能取0或1;end用Lingo求解,结果如下:: : 0Totalsolveriterations: 0Variable Value ReducedCostC(A,1) -(A,2) -(A,3) -(A,4) -(B,1) -(B,2) -(B,3) -(B,4) -(C,1) -(C,2) -(C,3) -(C,4)
用lingo求解规划问题实例 来自淘豆网m.daumloan.com转载请标明出处.