zoukankan      html  css  js  c++  java
  • 最优捕鱼策略问题

    为了保护人类赖以生存的自然环境,可再生资源(如渔业、林业资源)的开发必须适度。一种合理、简化的策略是,在实现可持续收获的前提下,追求最大产量或最佳效益。

    考虑对鳀鱼的最优捕捞策略:假设这种鱼分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编程解决数学问题。

  • 相关阅读:
    COJ 1002 WZJ的数据结构(二)(splay模板)
    生成网络流图
    最小费用最大流MCMF zkw费用流
    COJ 2003 选根 (树的重心)
    最小费用最大流MCMF 最小增广
    PDO 基础知识
    使 用 Jquery 全选+下拉+单选+事件+挂事件
    搜 房 网 站 设 计 练 习
    百分比进度条
    在PHP系统里连接MySQL 数据访问,+ + + + + 数据删除
  • 原文地址:https://www.cnblogs.com/loving-wenqure/p/3868239.html
Copyright © 2011-2022 走看看