1、2005 年同济大学数学建模竞赛第 33 组试题解答奶牛场承包规划问题姓名: 学号:傅锦霞 023071李婧 020189宋文迪 010181奶牛场承包规划问题摘要本文建立了一个关于养牛场承包问题的简化模型。在详细分析的基础上,通过合理假设、适当的固定某些变量(如贷款额) ,这样在一定程度上简化建立模型,并运用动态规划的方法对养牛场的相关决策问题进行分析,本着利益最大化原则,利用逆推法,并借助Matlab 软件解决了较复杂的计算,方便的确定出每年底应保留的小母牛数,并在此基础上确定贷款额的最佳值,实现了最大收益的目标。经计算分析可基本得出结论:承包人要采用适当的经营策略可以实现盈利。当承包人第
2、一年底保留的小牛数为 24.45 头,第二年底保留的小牛数为 13.97 头,承包人五年的总收益最大 61.2 万元。关键词: 动态规划 最大利润 最优决策 逆推法奶牛场承包规划问题1.问题重述某公司计划承包一奶牛场,经营期为 5 年,任何投资将从五年期贷款中获得,贷款年利率为 12%,每年归还本息总共的 1/5,除此还要于每年年底支付 6 万元土地承租费用。初期要承包原有的 120 头牛,分别为从 011 岁各 10 头。不到 2 岁为幼牛,不产奶也不生仔;其余为产奶牛,平均每年产奶收益为 3700 元/头,平均每头每年产仔 1.1 头,新生牛中公、母各半,产后不久小公牛全卖掉(300 元/
3、头) ,小母牛可卖掉(400 元/ 头) ,也可养成产奶牛;当产奶牛养到 12 岁就卖掉,平均每头卖出价为 1200 元。所养牛每年还有一定的损失,所用饲料是粮食和甜菜(可以由农场种植,也可从市场购买,多余还可以卖掉) ,有关数据见表 1 和表 2。另外,要雇佣工人来维持农场运转,劳动力成本为 10 元/小时。考虑农场现有状况,如果牛的总数超过 130,每增加一头就要增加 2000 元投入。到承包期满,所有牛按原来的承包价折价卖出,而且场主不希望第五年末产奶牛的数量增加超过原来的 75%,也不希望减少超过原来的 50%。2.变量说明XkT: 第 k 年初各年龄段(每隔 1 岁一个阶段,共 12
4、 段)牛的数量分布向量Ck1: 当粮食或甜菜多于牛的需求量时,通过售出得到的收益。Ck2: 第 k 年所用掉的饲料费。Ck3: 第 k 年用于支付多余 130 头的那部分牛的额外总投入。A12*12 :有关牛数量的变化矩阵 Sk: 第 k 年初小牛的数量Lk: 第 k 年初奶牛的数量 Q: 初始贷款额q: 每年需还贷款额Mk: 每年卖出的 12 岁牛的数量uk: 第 k 年留下的小母牛的数量(决策变量)UkT: 由 uk 所决定的决策向量(U kT=(u k,0,0,0,0,0,0,0,0,0,0,0) )rk: 第 k 年的净收益R: 5 年总的净收益值a: 幼牛的折价系数b: 产奶牛的折价
5、系数 3.假设1 所有的土地都可以用于农作物(粮食和甜菜)种植,养牛棚及相关设施的面积忽略。2 所有工人的工资都在年底支付,养牛和种植等其它费用在年初即要支付。3 假设奶牛的损失都发生在年末,产仔量由年初的产奶牛数目计算;且认为牛的损失 是在各个年龄段均匀分布的。4 相邻两年龄组的牛群在相邻两年之间的变化是连续变化的,即第 k 年底第 i 年龄组的牛在第 k+1 年初进入第 i+1 年龄组(在此之前 12 岁的牛已于第 k 年卖掉) 。5 第 k 年留下的小母牛在第 k+1 年初全数进入 0 岁年龄组。6 每年新生的小牛不计费用和损失。7 假设市场销路良好,五年后所有需卖出的牛都可全数以理想价
6、格卖出,最后产奶牛的折价系数为 0.95。 8 用于多于 130 的新增牛的 2000 元投入为一次性的。9 假定第 k 年的收入可用于第 k+1 年初的投入。10 由于死亡率是一种概率性的计算,所以假设在计算过程中可以对于牛数量保留小数4.问题分析由上述农场的状况(不考虑自然因素等影响) ,试分析承包人有无盈利的可能性。若有,怎样安排 5 年的计划才能使 5 年的净收益达到最大值?并进一步讨论:若银行利率波动,还款方式改变,气候原因等外因变化引起的农产品产量与价格的变化及劳动力市场价格的变动等会对原来制定的五年计划及收益产生怎样的影响。表 1粮食 甜菜自种年产量(吨/亩) 0.9 1.5所需
7、劳动量(时/亩) 20 30购入价格 (元/吨) 900 700售出价格 (元/吨) 750 500其它年消费(元/吨) 150 100表 2幼牛 产奶牛承包价(元/头) 400 4000每年所需劳动量(小时/头) 10 42每年吃粮食(吨/头) 0.4 0.6每年吃甜菜(吨/头) 0.7*2/3 0.7年损失 5% 2%其它年消费(元/头) 500 10005.建立模型(1)关于银行贷款银行贷款的还款方式选择为等额还款,计算公式如下:当年利率为 12,还款期数为 5 年,则可计算出每年的还款额:q=Q0.121.125/(1.125-1)=0.277Q 由于银行贷款利率较高,为减少投资成本及
8、利息的支付,在该模型中先考虑贷款额 Q可以满足奶牛场 5 年的正常运转,建模后期可以再对 Q 进行分析,实现在现有的年利率和还款方式下达到 5 年总收益最大,若出现投资不足造成模型不符合实际或贷款太多导致利润下降,可以在考虑对模型的修改。(2) 土地利用分析:表 3 价格( 元)种植量(亩)购入 售出 每吨费用(元)售出净利润(元)甜菜 f1=200-f2 S11=700 S12=500 (100+3010)/1.5=267 233粮食 f280 S21=900 S22=750 (150+2010)/0.9=389 361由上表发现:每亩土地无论生产甜菜或粮食,其费用都小于售出价格,且购入价格
9、高于售出价格,所以考虑将所有的土地都投入种植。分析已知条件可知,各年龄段的牛对于甜菜和粮食的需求比例都是 7:6,而按土地种植面积计算的可供给的甜菜与粮食比例大于 7:6,且通过表中数值比较可知,粮食的售出利润高于甜菜,所以 80 亩全部种粮食,这样种甜菜的面积也固定下来,为 120 亩。这样就将土地的分配首先确定下来。(3) 有关牛的分析:由已知,牛以 1 岁的年龄差分为 12 段,由于生长、损失和出生每年每年龄段的奶牛数发生变化。而对于奶牛场,每年的经济来源主要有:产奶牛的产奶、生仔、12 岁牛的卖出年利率(1年利率) 还款总期数(1年利率) 还款总期数 1每年还款额贷款金额以及农作物有剩
10、余时的售出。每年的支出主要有:养牛费用(包括人工费、饲料费及其它) 、种菜费用和固定费用(地租费和还款额) 。而牛的数目与分布成为进行生产计划的关键,因此有必要先建立一个有关牛的数量及分布的模型。我们这里采用一个 12 维向量 XkT 的形式表达:XkT=(x 0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11) T 上式中 x 下标代表牛的年龄,对应 x 为属于该年龄牛的数量。对于每年牛的变化用一个变化矩阵 A12*12 表示:A12*12=这样第 k 年底牛的状态由年初的 XkT 变为 XkT A12*12,再经过决定留有多少小母牛 uk,就确定了第 k+1 年初牛的
11、分布向量 Xk+1T,为了方便,再引入由 uk 所确定的向量UkT=(u k,0,0,0,0,0, 0,0,0,0,0,0) ,为方便下面的数学建模。这样,牛的表示模型确立下来,其它因素变化也就跟牛的数量联系起来,我们就可以考虑本文的模型目标了,即如何安排五年生产计划,从而达到总收益最大。 (4) 利润分析:经分析,每年的幼牛没有任何产出,对于新增的(上年计划留下的小母牛)幼牛,必须经过两年的饲养才能长成产奶牛,获得收益。如何减少饲养幼牛的成本、以及一批幼牛在整个的承包期内可以在产奶牛群中停留几年,这些因素将会大大影响到总收益值。所以可以初步这样确定:对于 1、2、3、4 年所留的小母牛数是依
12、次递减的。仔细分析,第3、4 年末出生的小母牛到第五年末仍为小母牛,且抵卖价格低于饲养费用,所以会产生负收入,应决定全数卖出,即令 u3、u 4 为 0,这样第 5 年幼牛数为 0,显然 u5 也为 0 ,那么需要进行决策的问题就简化成为确定 u1、u 2。(5) 模型确立因为养牛场规划问题是要对每年进行规划,以实现 5 年总收益最大,是一个明显的分阶段决策问题,所以我们用动态规划的模型进行求解。本题经营周期为 5 年,第 k 年的牛群组成状态可以用 XkT 表示。并且有牛的分布在第一年初为 X1T=(10,10,10,10,10,10,10,10,10,10,10,10) T,第六年初为X6
13、T=(0,0,0,0,0,0,0,0,0,0,0,0) T,于是问题时始末端固定的问题。第 k 年底牛的状态由 XkT 变为 XkT A12*12,再经过决策变量 uk 就可以确定第 k+1 年初的牛群状态为 Xk+1T=XkT A12*12+ UkT,该式即为动态规划中的状态转移方程(满足无后效应) ,对应第 k 年的净收益为 rk(X kT,u k) , 先看每年的固定收益为:3700 L k+300x1.1Sk/2+400x(1.1Lk/2- uk)固定消费为: 60000 + Qk+600 Sk+1420 Lk+1200Mk Mk=12000*(0.98)k不确定量分别为:C 1k、C
14、 2k 和 C3k因为 C1k、C 2k 与牛的数量和农作物有关,所以结合表 2 中牛对两种不同作物的需求量和“土地利用分析”一节进行综合考虑,因为幼牛消耗农作物量为产奶牛的 2/3,所以可以等效为有(2/3S k+Lk)头产奶牛,经过分析可以得出以下 3 种可能:0098.5.090 1 当(2/3S k+Lk)*0.672 时,粮食和甜菜都能自给自足,并且会有剩余:C1k=72-0.6*(2/3S k+Lk)*361 +180-0.7*(2/3S k+Lk)*233C2k=0.6*(2/3S k+Lk)*389+0.7*(2/3S k+Lk)*2672 当 72130 且 u136.7 时
15、, C43=2000u2当 0u 136.7 且 u2+0.95u1+L3130 时, C 43=2000*(u2+0.95u1+L3-130)当 u 2+0.95u1+L3130 时, C 43=0由于 u1以 36.7 为分界点,进一步讨论 0u 2+0.95u188.565 02S 3+3L3462.631所以仍需划分区间.由此可知道,r 3 (X 3T)有 6 种组合,但经过对个别区间的进一步讨论比较可以对某些区间进行合并,从而可简化为 3 段,分别为:当 u136.7 且 0u 2105.9-0.95u 1时, r3(X 3T)=187653.5-1133.3u 1+1193.3u2
16、-q+1200M3当 0u 136.7 且 0u 237.2-0.95u 1时, r3(X 3T)=185418.5-1077.0u 1+1133.3u2-q+1200M3当 0u 136.7 且 37.2-0.95u1u 2105.9-0.95u 1时,r3(X3T)=257319.4-3033.6u 1-3193.3u2-q+1200M34、第二年推算:r2(X 2T)= 1865L 2-1133.3S2-400u2-60000-q+C21-C22-C23+1200M2 104.0(2/3S 4+L4)120 C 21-C22=67932-890*(2/3S4+L4)/3 120(2/3S
17、 4+L4)140.7 C 21-C22=78732-890*(2/3S4+L4)/30u 122.8 C 3=022.8u 255 C 3=2000u1+2280由于不同区间存在, r 2(X 2T)的有三种表达形式:0u 124.5 r 2(X 2T)=1865L 2-1133.3S2+7932-400u1+1200M224.5u 155 r 2(X 2T)=267932-135L 2-400u1-q+1200M25、第一年的推算:f1(X 1T)=maxr 1(X 1T)+ f 2(X 2T);r1(X 1T)=2665L 1-600S1-60000-q-400u1+(C11-C12+C
18、13)+1200M1+(1000 L 1+500S1+150*80+100*120)(此为修正部分)因为 L1=100 S1=20 C13=0C11-C12=67932-800/3=-22734.7r1(X 1T)=305763-400u 1-q+1200M1以上 5 个过程便是使用逆推法对五年中计划安排的大致推算,发现第 4、5 年较简单,第 2、3 年时候变得较复杂,第 1 年由于初始状态是确定的,所以 r1(X 1T)计算也不难,现在对以上计划个过程再进一步简化如下(式中仅出现 u1、u 2两个变量):第一年净收益为 : r1=305763-400u1-q+1200M1 0u 155第二
19、年净收益为 : 0u 124.45 时 r2=179376-1133.3u1-400u2-q+1200M2 124.45u 155 时 r2=226413-3193.3u1-400u2-q+1200M2 2第三年净收益为 : u136.7 且 00.95u 1+u2105.9 1r3=187653.4-1133.6u1-1193.3u2-q+1200M3 0u 136.7 且 00.95u 1+u237.2 2r3=185418.5-1077u1-1133.3u2-q+1200M30u 136.7 且 37.20.95u 1+u2 3r3=257319.4-3033.6u1-3193.3u2-
20、q+1200M3第四年底和第五年底的最大总净收益之和为:02.7075u 1+1.9u2108.6 且 00.8845u 1+0.9025u247.05 1f4=r4+r5=510226.3+6626.5u1+3917.4u2-2q+1200M4+1200M5+4000bL50.9802.7075u 1+1.9u2108.6 且 47.050.8845u 1+0.9025u2 2f4=r4+r5=503702.8+6546.9u1+3886.9u2-2q+1200M4+1200M5+4000bL50.98108.62.7075u 1+1.9u2200 且 00.8845u 1+0.9025u2
21、47.05 3f4=r4+r5=241859+3251.4u1+549.5u2-2q+1200M4+1200M5+4000bL50.98 108.62.7075u 1+1.9u2200 且 47.050.8845u 1+0.9025u2 4f4=r4+r5=235335.6+3171.8u1+468.3u2-2q+1200M4+1200M5+4000bL50.98模型求解至此为止,要找到最优化状态下的 u1、u 2,我们采用 Matlab 软件进行求解,主要的求解的思想就是划分区域,分别优化。因为牛的饲料供应与牛的数量直接相关,而饲料的来源依靠自己种植和市场购进,另外还有销售问题,以及多出 1
22、30 头牛的新增建设问题,所以以上限制条件将牛的分布分成不同的区域,为了方便求解,我们首先利用所有的限制条件编写程序(程序 1)绘制牛的数量分布图(图 1) 。将牛的分布划分成小区域后,在某小一区域中对利润的求解公式就确定唯一了,再经过简化处理,问题已经成为在线形区域中求最优值,利用 matlab 中的 linprog 优化函数,编制决策优化求解函数(程序 2) ,求出最优组合,其间有一些不合理的结果,经过人工修正,也可以进行进一步的分析,最终确定各区域的优化组合。 (相关程序见附录)由程序得到的相关数据见表 5,发现出现了几对最优值,但基于我们的模型是在最初贷款额满足 5 年都能正常运行的假
23、定下建立的,而表 5 的数据利润表格一栏的数字不能真正说明在所有的最优值中它就是最佳的。经过分析,得出 u1=24.45、u 2=13.97 是较合理的数据,将这一数据带入表 4 种就可以得到 5 年里牛的具体数值如下:第 k 年 0 岁 1 岁 2-11 岁1 10 10 1002 24.45 9.5 97.73 13.97 23.2 95.24 0 13.3 1065 0 0 107.2在此情况下,得出如下结论:根据假设,从承包开始要使奶牛场正常运转所需贷款额为 542000,经过每年的投资额计算,可以保证奶牛场 5 年的正常运转,所以利用表 5 种数据可得到 5 年的总净收益为:136.
24、23*10000-542000*0.277*5=611630(元)下面再看一下另外一组数据的情况:u 1=36.7 u2=16.16同样得到 5 年里牛的具体数值如下:第 k 年 0 岁 1 岁 2-11 岁1 10 10 1002 36.7 9.5 97.73 16.16 34.87 95.24 0 15.35 1175 0 0 120在此情况下得到如下结论:因为在第 1 年留下了较多的小母牛,使该年利润减少,下年的投入增加,并且导致在第 2、3 年出现了严重的资金不足,这样只能通过增加贷款来保证农场运转,计算得出要贷款 75 万左右,这样在结合表 5 种利润数据就可以得到此情况下 5 年的
25、总净收益:139.49*10000-750000*0.277*5=356150(元)比较以上两种情况,可以说我们可以确定在 5 年承包期下最优规划如下:贷款额:542000 元;第 1 年留下 24.45 头小母牛、第 2 年留 13.97 头、其余 3 年不留,这样可实现 5 年最大总收益为 61.2 万元。表 5 各区域最优值 u1 u2 利润(不计借款本息)1 24.45 13.97 136.232 24.45 13.97 135.363 24.45 13.97 133.924 3 53 132.355 36.7 16.16 139.496 24.45 53 136.187 36.7 5
26、3 146.568 36.7 16.16 139.499 24.45 28.17 136.6710 24.45 25.87 136.57注:利润以万元计7.灵敏度分析本节第 1 年和第 2 年年底留下的小母牛的数量(u 1、u 2)在一定范围内变化时,对问题中承包者五年的最大总收益的影响,进行灵敏度分析。总收益的大小受每年底留下的小母牛的数量的影响:当第一年和第二年底留下的小母牛的数量增加时,总收益随之增加,但若留下的小母牛的数量超过一定的数量时,承包者不仅在本年度减少了通过卖掉小母牛得到的收益,另外还需在下一年为超过 130 头以上的新增牛支付 2000 元额外的费用,并且因为牛的数量增加使饲料的需求量增加,要通过从市场购买才能满足所需,这也会导致总收益的减少。因而在农场现有养牛空间及粮食的限制条件下,在不同的条件下五年的总利润将不同。考虑到以上因素后发现 u1的变动比 u2对总收益影响要更显著一些,所以在贷款额润需的条件下我们应当尽可能增大 u1。