最优捕鱼策略问题
为了保护人类赖以生存的自然环境,可再生资源(如渔业、林业资源)的开发必须适度。一种合理、简化的策略是,在实现可持续收获的前提下,追求最大产量或最佳效益。
考虑对鳀鱼的最优捕捞策略:假设这种鱼分4个年龄组,称为1龄鱼,2龄鱼,3龄鱼,4龄鱼。各年龄组每条鱼的平均质量分别为5.07、11.55、17.86、22.99(g),各年龄组的自然死亡率为0.8(1/年),这种鱼为季节性集中产卵繁殖,平均每条4龄鱼的产卵量为1.109×1011(个),3龄鱼的产卵量为这个数的一半,2龄鱼和1龄鱼不产卵,产卵和孵化期为每年的最后4个月,卵孵化并成活为1龄鱼,成活率(1龄鱼条数与产卵量n之比)为1.22×1011/(1.22×1011+n)。
渔业管理部门规定,每年只允许在产卵孵化期前的8个月进行捕捞作业。如果每年投入的捕捞能力(如渔船数、下网次数等)固定不变,这时单位时间捕捞量将与各年龄组鱼群条数成正比,比例系数不妨设为捕捞强度系数。通常使用13mm网眼的拉网,这种网只能捕捞3龄鱼和4龄鱼,其两个捕捞系数之比为0.42:1.渔业上称这种方式为固定努力量捕捞。
①建立数学模型分析如何实现可持续捕捞(即每年开始捕捞时渔场中各年龄组鱼群条数不变),并且在此前提下得到最高的年收获量(捕捞总质量)。
②某渔业公司承包这种鱼的捕捞业务5年,合同要求5年后鱼群的生产能力不能受到太大破坏。已知承包时各年龄组鱼群的数量分别为:122,29.7,10.1,3.29(×109条),如果仍用固定努力量的捕捞方式,该公司应采取怎样的策略才能使总收获量最高。
(1)问题的分析与模型的建立
问题假设
①鱼群总量的增加虽然是离散的,但对于大规模的鱼群而言,可设鱼群总量的变化随时间是连续的。
②据题目给出的条件,可设鱼群每年在8月底瞬间产卵完毕,卵在12月底全部孵化完毕。
③i龄鱼到第二年分别长一岁成为i+1龄鱼,i=1,2,3。
④4龄鱼在年末留存的数量占全部数量的比例很小,可假设全部死亡。
⑤持续捕获使各年龄组的鱼群数量呈周期变化,周期为1年,可以只考虑鱼群数量在1年内的情况。
问题分析
①符号说明。
xi(t)——在t时刻i龄鱼条数,i=1,2,3,4;
k——4龄鱼捕捞强度系数;
n——每年产卵量;
ai——每年初i龄鱼的数量,i=1,2,3,4。
②对死亡率的理解。题中给出鱼的自然死亡率为0.8(1/年),我们理解为平均死亡率,这是单位时间鱼群死亡数量与现有鱼群数量的比例系数,由假设可知,它是一个与环境等其他因素无关的常数。鱼群的数量是连续变化的,且1龄鱼、2龄鱼在全年及3龄鱼、4龄鱼在后4个月的数量只与死亡率有关,各龄鱼的数量满足
,t∈[0,1](i=1,2)
,t∈[2/3,1](i=3,4)
③捕捞强度系数的理解。单位时间4龄鱼捕捞量与4龄鱼群总数成正比,比例系数即为捕捞强度k,它是一定的,且只在捕捞期内(即每年的前8个月)捕捞3龄鱼,4龄鱼。所以,一方面捕捞强度系数决定了3龄鱼、4龄鱼在捕捞期内的数量,其变化规律为
,t∈[0,2/3]
,t∈[0,2/3]
另一方面也决定了t时刻捕捞3龄鱼、4龄鱼,其数量分别为0.42kx3(t)和kx4(t)。
④成活率的理解。由于只有3龄鱼、4龄鱼在每年8月底一次产卵,因此可将每年的产卵量n表示为
题目中已经说明成活率为,所以每年年初的1龄鱼的数量为
(2)Matlab模拟程序与结果
模型如下:
s.t
,t∈[0,1]
,t∈[0,1]
,t∈[0,2/3]
,t∈[2/3,1]
,t∈[0,2/3]
,t∈[2/3,1]
计算机程序模拟实验程序:先建立两个M-file。
%[buyu.m]最优捕鱼策略问题
function y=buyu(x)
global a10 a20 a30 a40 total k;
syms k a10;
x1=dsolve('Dx1=-0.8*x1','x1(0)=a10');
t=1;a20=subs(x1);
x2=dsolve('Dx2=-0.8*x2','x2(0)=a20');
t=1;a30=subs(x2);
x31=dsolve('Dx31=-(0.8+0.42*k)*x31','x31(0)=a30');
t=2/3;a31=subs(x31);
x32=dsolve('Dx32=-0.8*x32','x32(2/3)=a31');
t=1;a40=subs(x32);
x41=dsolve('Dx41=-(0.8+k)*x41','x41(0)=a40');
t=2/3;a41=subs(x41);
x42=dsolve('Dx42=-0.8*x42','x42(2/3)=a41');
nn=1.109*10^5*(0.5*a31+a41);
eq1=a10-nn*1.22*10^11/(1.22*10^11+nn);
S=solve(eq1,a10);a10=S(2);
syms t;
t3=subs(subs(int(0.42*k*x31,t,0,2/3)));
t4=subs(subs(int(k*a41,t,0,2/3)));
total=17.86*t3+22.99*t4;
k=x;
y=subs(-total);
%[buyu1.m]最优捕鱼策略问题
global a10 a20 a30 a40 total;
[k,mtotal]=fminbnd('buyu',16,18);
ezplot(total,0,25)
xlabel('捕捞强度系数')
ylabel('总收获量(g)')
title('捕捞强度——总收获量曲线图')
format long;
k
total=-mtotal
a10=eval(a10)
a20=eval(a20)
a30=eval(a30)
a40=eval(a40)
format short
clear
在Matlab中输入命令:buyu1,回车即得:
k = 17.86984648968516, total = 3.869962667986214e+011,
a10 = 1.192332637390619e+011, a20 = 5.357495888418817e+010
a30 = 2.407278077805501e+010, a40 = 7.262288087797806e+007
同时,还得到图形——图1。
当k=17.86984648968516时,最高年收获量为totalT=3.869962667986214e+011(g),此时每年年初四种龄鱼的数量分别为:
1.192332637390619e+011
5.357495888418817e+010
2.407278077805501e+010
7.262288087797806e+007
关于第二个问题的求解,在此略去。
参考文献
[1] 李志林,欧宜贵,数学建模及其典型案例分析,北京:化学工业出版社,2006.12
参考页码及索取号
[1] Page22; O141.4/L.Z.L
重点注意:用Matlab编程解决数学问题。