数学建模社区-数学中国

标题: 优化问题求助,急!!! [打印本页]

作者: 建模风暴    时间: 2012-4-30 23:58
标题: 优化问题求助,急!!!
两个美国学生暑假时考虑创业,打算成立一家公司,主营业务是往大学推销某种打印机。他们先与生产商签订了一个每月最多供应500台机器的合同,这时候他们面临寻找一个合适的库存地点的问题,他们找到了一处符合他们各方面需求的房子,但是房主的要价是每年租金为10万美元,他们觉得难以承受,房主于是提出了一个备选方案:按库存的机器数量付租金,在经营的第一个月内,每台机器每月库存费用为10美元,剩余月份每台每月增加2美元。一般情况下他们在9月初大学开学时才有销量,到6月降为0,机器售价为180美元。他们计算出了包括购买、运输及管理在内的总成本,前4个月每台成本为100美元,其后的4个月每台成本90美元,该年剩下的4个月每台成本85美元,每月最多订购一次。经过调查,他们估计出了该学年9月到下年5月的销售量:
9月        340
10月        650
11月        420
12月        200
1月        660
2月        550
3月        390
4月        580
5月        120
请考虑他们应该如何制订一个使成本最小的订购计划。如果后来他们又接到生产厂商的电话,不能为他们每月供应500台机器了,他们可以在前4个月每月供应700台,后5个月每月供应300台。这对他们的订购计划有何影响?
问题:
1.        建立问题的通用的数学规划模型,为该公司制订一个使成本最小的最优订购计划。
2.        库存费用的两种支付方式,10万美元一年或按机器数量每月付费,哪种更有利?
3.        生产商供应模式的变化将给公司带来怎样的损失?
4.        如果该公司需要借大约20万美元创业,在第一年结束时,他们能盈利吗?

作者: 建模风暴    时间: 2012-4-30 23:58
求高手指点
作者: 宁静的夜    时间: 2012-9-8 18:01
dfdddddddddd
作者: liwenhui    时间: 2017-5-10 10:21
第2问:
如果在10万每年的租金下,总成本:
  1. Model:

  2. Sets:
  3. Month/Sep..May/:S,B,D;!S销售量,B采购量,D库存量;
  4. Endsets

  5. Min=C1+C2;

  6. C1=100000;!库存成本;
  7. C2=@Sum(Month(i):S(i)*@if(i#le#4,100,@if(i#le#8 #and# i#ge#5,90,85)));!采购成本;

  8. @For(Month(i)|i#eq#1:S(i)<B(i));!第一个月采购量不小于销售量;
  9. @For(Month(i)|i#gt#1 #and# i#lt#9:S(i)<B(i)+D(i-1));!第二个月开始,购买量加上上一个月的剩余量不小于销售量;
  10. @For(Month(i)|i#eq#9:S(i)=B(i)+D(i-1));!最后一个月销售量等于采购量加上上月库存;
  11. @For(Month(i)|i#eq#1:D(i)=B(i)-S(i));!第一个月的剩余量等于采购量减销售量;
  12. @For(Month(i)|i#gt#1 #and# i#lt#9 :D(i)=D(i-1)+B(i)-S(i));!第二个月开始的剩余量等于上个月的剩余量加采购量减销售量;
  13. @For(Month(i):B(i)<500);!每月采购量不大于500台;

  14. Data:
  15. S=340,650,420,200,660,550,390,580,120;
  16. Enddata

  17. End
复制代码
结果是:
  1. Global optimal solution found.
  2.   Objective value:                              467400.0
  3.   Infeasibilities:                                  0.000000
  4.   Total solver iterations:                             0
复制代码
如果是按机器数量付费:
  1. Model:

  2. Title 如果每个月供应500台;
  3. Sets:
  4. Month/Sep..May/:S,B,D;!S销售量,B采购量,D库存量;
  5. Endsets

  6. Min=C1+C2;

  7. C1=@Sum(Month(i):D(i)*@if(i#eq#1,10,12));!库存成本;
  8. C2=@Sum(Month(i):S(i)*@if(i#le#4,100,@if(i#le#8 #and# i#ge#5,90,85)));!采购成本;

  9. @For(Month(i)|i#eq#1:S(i)<B(i));!第一个月采购量不小于销售量;
  10. @For(Month(i)|i#gt#1 #and# i#lt#9:S(i)<B(i)+D(i-1));!第二个月开始,购买量加上上一个月的剩余量不小于销售量;
  11. @For(Month(i)|i#eq#9:S(i)=B(i)+D(i-1));!最后一个月销售量等于采购量加上上月库存;
  12. @For(Month(i)|i#eq#1:D(i)=B(i)-S(i));!第一个月的剩余量等于采购量减销售量;
  13. @For(Month(i)|i#gt#1 #and# i#lt#9 :D(i)=D(i-1)+B(i)-S(i));!第二个月开始的剩余量等于上个月的剩余量加采购量减销售量;
  14. @For(Month(i):B(i)<500);!每月采购量不大于500台;

  15. Data:
  16. S=340,650,420,200,660,550,390,580,120;
  17. Enddata

  18. End
复制代码
结果是:
  1. Global optimal solution found.
  2.   Objective value:                              372980.0
  3.   Infeasibilities:                                  0.000000
  4.   Total solver iterations:                             3
复制代码
可见采用按机器数量付费,成本更低。

第三问:
供应商如果按前4个月700台,后5个月300台供货:
  1. Model:

  2. Title 如果前4个月每月供应700台,后5个月每月供应300台;
  3. Sets:
  4. Month/Sep..May/:S,B,D;!S销售量,B采购量,D库存量;
  5. Endsets

  6. Min=C1+C2;

  7. C1=@Sum(Month(i):D(i)*@if(i#eq#1,10,12));!库存成本;
  8. C2=@Sum(Month(i):S(i)*@if(i#le#4,100,@if(i#le#8 #and# i#ge#5,90,85)));!采购成本;

  9. @For(Month(i)|i#eq#1:S(i)<B(i));!第一个月采购量不小于销售量;
  10. @For(Month(i)|i#gt#1 #and# i#lt#9:S(i)<B(i)+D(i-1));!第二个月开始,购买量加上上一个月的剩余量不小于销售量;
  11. @For(Month(i)|i#eq#9:S(i)=B(i)+D(i-1));!最后一个月销售量等于采购量加上上月库存;
  12. @For(Month(i)|i#eq#1:D(i)=B(i)-S(i));!第一个月的剩余量等于采购量减销售量;
  13. @For(Month(i)|i#gt#1 #and# i#lt#9 :D(i)=D(i-1)+B(i)-S(i));!第二个月开始的剩余量等于上个月的剩余量加采购量减销售量;
  14. @For(Month(i)|i#le#4:B(i)<700);!前4个月每月采购量不大于700台;
  15. @For(Month(i)|i#gt#4:B(i)<300);!后5个月每月采购量不大于300台;

  16. Data:
  17. S=340,650,420,200,660,550,390,580,120;
  18. Enddata

  19. End
复制代码
结果:
  1. Global optimal solution found.
  2.   Objective value:                              404060.0
  3.   Infeasibilities:                                  0.000000
  4.   Total solver iterations:                             0


  5.   Model Title: 如果前4个月每月供应700台,后5个月每月供应300台

  6.                        Variable           Value        Reduced Cost
  7.                              C1        36660.00            0.000000
  8.                              C2        367400.0            0.000000
  9.                         S( SEP)        340.0000            0.000000
  10.                         S( OCT)        650.0000            0.000000
  11.                         S( NOV)        420.0000            0.000000
  12.                         S( DEC)        200.0000            0.000000
  13.                         S( JAN)        660.0000            0.000000
  14.                         S( FEB)        550.0000            0.000000
  15.                         S( MAR)        390.0000            0.000000
  16.                         S( APR)        580.0000            0.000000
  17.                         S( MAY)        120.0000            0.000000
  18.                         B( SEP)        490.0000            0.000000
  19.                         B( OCT)        700.0000            0.000000
  20.                         B( NOV)        700.0000            0.000000
  21.                         B( DEC)        700.0000            0.000000
  22.                         B( JAN)        300.0000            0.000000
  23.                         B( FEB)        300.0000            0.000000
  24.                         B( MAR)        300.0000            0.000000
  25.                         B( APR)        300.0000            0.000000
  26.                         B( MAY)        120.0000            0.000000
  27.                         D( SEP)        150.0000            0.000000
  28.                         D( OCT)        200.0000            0.000000
  29.                         D( NOV)        480.0000            0.000000
  30.                         D( DEC)        980.0000            0.000000
  31.                         D( JAN)        620.0000            0.000000
  32.                         D( FEB)        370.0000            0.000000
  33.                         D( MAR)        280.0000            0.000000
  34.                         D( APR)        0.000000            94.00000
  35.                         D( MAY)        0.000000            12.00000
复制代码
影响了每月的订货节奏和成本。

第四问:借入20万,不考虑利息的情况:
  1. Model:

  2. Title 如果每个月供应500台;
  3. Sets:
  4. Month/Sep..May/:S,B,D;!S销售量,B采购量,D库存量;
  5. Endsets

  6. Max=R-(C1+C2+C3);

  7. R=@sum(Month(i):S(i)*180);
  8. C1=@Sum(Month(i):D(i)*@if(i#eq#1,10,12));!库存成本;
  9. C2=@Sum(Month(i):S(i)*@if(i#le#4,100,@if(i#le#8 #and# i#ge#5,90,85)));!采购成本;
  10. C3=200000;
  11. @For(Month(i)|i#eq#1:S(i)<B(i));!第一个月采购量不小于销售量;
  12. @For(Month(i)|i#gt#1 #and# i#lt#9:S(i)<B(i)+D(i-1));!第二个月开始,购买量加上上一个月的剩余量不小于销售量;
  13. @For(Month(i)|i#eq#9:S(i)=B(i)+D(i-1));!最后一个月销售量等于采购量加上上月库存;
  14. @For(Month(i)|i#eq#1:D(i)=B(i)-S(i));!第一个月的剩余量等于采购量减销售量;
  15. @For(Month(i)|i#gt#1 #and# i#lt#9 :D(i)=D(i-1)+B(i)-S(i));!第二个月开始的剩余量等于上个月的剩余量加采购量减销售量;
  16. @For(Month(i):B(i)<500);!每月采购量不大于500台;

  17. Data:
  18. S=340,650,420,200,660,550,390,580,120;
  19. Enddata

  20. End
复制代码
结果:
  1.   Global optimal solution found.
  2.   Objective value:                              130820.0
  3.   Infeasibilities:                                  0.000000
  4.   Total solver iterations:                             3


  5.   Model Title: 如果每个月供应500台

  6.                        Variable           Value        Reduced Cost
  7.                               R        703800.0            0.000000
  8.                              C1        5580.000            0.000000
  9.                              C2        367400.0            0.000000
  10.                              C3        200000.0            0.000000
  11.                         S( SEP)        340.0000            0.000000
  12.                         S( OCT)        650.0000            0.000000
  13.                         S( NOV)        420.0000            0.000000
  14.                         S( DEC)        200.0000            0.000000
  15.                         S( JAN)        660.0000            0.000000
  16.                         S( FEB)        550.0000            0.000000
  17.                         S( MAR)        390.0000            0.000000
  18.                         S( APR)        580.0000            0.000000
  19.                         S( MAY)        120.0000            0.000000
  20.                         B( SEP)        490.0000            0.000000
  21.                         B( OCT)        500.0000            0.000000
  22.                         B( NOV)        420.0000            0.000000
  23.                         B( DEC)        410.0000            0.000000
  24.                         B( JAN)        500.0000            0.000000
  25.                         B( FEB)        500.0000            0.000000
  26.                         B( MAR)        470.0000            0.000000
  27.                         B( APR)        500.0000            0.000000
  28.                         B( MAY)        120.0000            0.000000
  29.                         D( SEP)        150.0000            0.000000
  30.                         D( OCT)        0.000000            22.00000
  31.                         D( NOV)        0.000000            12.00000
  32.                         D( DEC)        210.0000            0.000000
  33.                         D( JAN)        50.00000            0.000000
  34.                         D( FEB)        0.000000            36.00000
  35.                         D( MAR)        80.00000            0.000000
  36.                         D( APR)        0.000000            24.00000
  37.                         D( MAY)        0.000000            12.00000

  38.                             Row    Slack or Surplus      Dual Price
  39.                               1        130820.0            1.000000
  40.                               2        0.000000            1.000000
  41.                               3        0.000000           -1.000000
  42.                               4        0.000000           -1.000000
  43.                               5        0.000000           -1.000000
  44.                               6        150.0000            0.000000
  45.                               7        0.000000            0.000000
  46.                               8        0.000000            0.000000
  47.                               9        210.0000            0.000000
  48.                              10        50.00000            0.000000
  49.                              11        0.000000            0.000000
  50.                              12        80.00000            0.000000
  51.                              13        0.000000            0.000000
  52.                              14        0.000000            0.000000
  53.                              15        0.000000            0.000000
  54.                              16        0.000000            10.00000
  55.                              17        0.000000            0.000000
  56.                              18        0.000000            0.000000
  57.                              19        0.000000            12.00000
  58.                              20        0.000000            24.00000
  59.                              21        0.000000            0.000000
  60.                              22        0.000000            12.00000
  61.                              23        10.00000            0.000000
  62.                              24        0.000000            10.00000
  63.                              25        80.00000            0.000000
  64.                              26        90.00000            0.000000
  65.                              27        0.000000            12.00000
  66.                              28        0.000000            24.00000
  67.                              29        30.00000            0.000000
  68.                              30        0.000000            12.00000
  69.                              31        380.0000            0.000000
复制代码
能实现盈利。

























欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5