养鱼优化问题【摘要】本文要解决的问题是以某池塘养殖鱼类为背景而提出的,养殖户为了获取较大的利润,必然会面对确定养殖方案的问题。因此如何在限定的条件下找出最佳的出售时机以制定最优的养鱼方案成为了解决此问题的关键。故我们将该问题归结为带有约束条件的优化问题。投入的资金用于购买饲料可使鱼苗生长,并且重量随时间而增长直至长为成鱼。而此种鱼的售价随鱼重的变化呈阶段性提高,既而应该存在一个最佳的出售时机,使获得利润最大。为了满足假设条件的要求,我们建立了以最大利润为目的的优化模型。该问题中忽略了鱼的繁殖与死亡,则问题的核心就在于鱼苗生长过程中,鱼重与时间的关系以及投入的成本与时间和鱼重的关系要求解利润的大小,首先要进行数据分析,得出成本费用和销售价格的计算方法,利润即为销售价格减去成本费用;其次综合分析求解利润的目标函数,通过计算机对大量的数据进行处理,进而得出最优的养鱼方案。对于该建模题中对于目标函数的求解,运用了dev-c++编译器进行编程和求解,使得问题的求解更加快捷和准确。本文的主要特点在于,所用算法的效率十分显著。在对原始数据仅做简单预处理的条件下,可求出最佳出售时机以及最大利润值。另外,本文所建立的模型简单、所用算法比较清晰,易于程序实现。关键词:养鱼利润养殖方案约束条件销售价格成本费用一、问题重述有一池塘,其水面面积约为100×1002m,用来养殖某种鱼类。在如下的假设下,设计能获取较大利润的三年的养鱼方案。①鱼的存活空间为1kg/2m;②每1kg鱼每天需要的饲料为0.05kg,市场上鱼饲料的价格为0.2元/kg;③鱼苗的价格忽略不计,每1kg鱼苗大约有500条鱼;④鱼可四季生长,每天的生长重量与鱼的自重成正比,365天长为成鱼,成鱼的重量为2kg;⑤池内鱼的繁殖与死亡均忽略;⑥若q为鱼重,则此种鱼的售价为:每条鱼重0.2到0.75公斤时,售价是6元/公斤;每条鱼重0.75到1.5公斤时,售价是8元/公斤;每条鱼重1.5到2公斤时,售价是10元/公斤;重量小于0.2公斤的鱼不能上市,规定价格为0。即25.1/105.175.0/875.02.0/62.0/0qkgqkgqkgqkgQ元元元元⑦该池内只能投放鱼苗。二、模型假设(1)池塘的水面面积都是且只是鱼的存活空间,不会被其他生物所占据;(2)鱼的食物来源仅为市场上销售的鱼饲料,且鱼苗仅在每天喂养饲料的情况下生长直至长为成鱼;(3)饲料供给时,池塘里的鱼均可得到每天所需的饲料;(4)池塘里鱼的重量在任意时刻均基本相同;(5)同一个生长周期下生长的鱼进行同时捕捞与销售;(6)池塘中该鱼种未全部捕捞前不投放鱼苗;(7)不考虑池内鱼的繁殖与死亡;(8)鱼可四季生长,且每天的生长重量与鱼的自重成正比;(9)该池内只能投放鱼苗。三、符号说明符号含义单位q一条鱼在任一时刻的重量公斤(kg)0q一只鱼苗的初始重量公斤(kg)x鱼每天的生长重量与鱼的自重所成的比例d一批该种鱼类的养殖天数天c每条鱼饲养d天所消耗饲料的费用元0c每kg鱼每天所消耗饲料的费用元1c每条鱼每天所消耗饲料的费用Q每kg鱼的价格元/kg0Z饲养d天的一条鱼产生的利润元1Z饲养d天的一批鱼产生的利润元Z养鱼三年的总利润元0S每kg鱼所需要的存活空间kg/2m1S每条鱼所需要的存活空间条/2mS池塘的水面面积2mn池塘中所饲养鱼的条数条四、问题分析在池塘养殖鱼类,我们如何在众多的养殖方案中选择可获取较大利润的时效三年的养鱼方案,这是我们要解决的核心问题。针对此问题,在假设同批生长鱼苗在同时间出售的前提下,我们便考虑从出售时机的角度来寻求最优方案,也就可以先从研究一条鱼的角度来求解问题。首先算出养殖d天的每条鱼的平均每天产生的利润,即售出价格减去消耗饲料的费用,由此可求出d的最佳解使得在该模型中此利润最大,以及养殖一批鱼的最大利润。进而我们可以求得三年内可养殖该鱼种的批数和获取的利润值。五、模型建立题目要求设计的是池塘能获取较大利润的三年的养鱼方案,根据设定的假设同批生长鱼苗在同时间出售,就可以将研究的范围缩小至先考虑一条鱼的利润的优化求解。则要求解的一条鱼的利润的目标函数为:max0ZQqc分析约束的假设条件:1、由1kg鱼苗大约有500条鱼可知,301210500qkgkg,故01dqqx,且当365d天时,36530121012dqqxxkg,则136510001x;2、因为每kg鱼每天需要的饲料为0.05kg,市场上鱼饲料的价格为1.2元/kg,则每kg鱼每天所消耗饲料的费用2010605.02.1c元,且一天每条鱼所消耗饲料的费用10ccq,则养殖d天每条鱼所消耗的饲料费用为001,0,1,2,365dccqxd。因此,目标函数可改写为max0001,0,1,2,365dZQqcqxd六、模型求解我们直接运用dev-c++编译器编程,求解得到模型的最优解,程序及运行结果如下:#includestdio.h#includemath.hintmain(){doublex,w,c,p,k,t,Profit[365];intd=0,i,j,l;x=pow(1000,(1.0/365.0))-1;//printf(%lf,x);//x=0.01910for(j=1;j=365;j++){c=0;for(i=1;i=j;i++){k=0.06*0.002*pow((1+x),j);c=c+k;}w=0.002*pow((x+1),j);if(w0.2)(p=0);elseif(w=0.2&&w0.75)p=6;elseif(w=0.75&&w1.5)p=8;elseif(w=1.5&&w=2)p=10;Profit[j]=(w*p-c);}t=Profit[1];j=l;for(l=2;l=365;l++){if(tProfit[l]){t=Profit[l];j=l;}}printf(\n在第%d天的时候利润最大为%lf,j,t);getchar();return0;}在第365天的时候利润最大为12.7由该运行结果我们可以得到,在饲养了365天,即鱼长为成鱼时,鱼的销售利润达到最大,且一条鱼的利润为012.7Z元。在这个结果的基础上,我们就可以得到一批鱼的利润10ZnZ分析约束的假设条件:1、鱼的存活空间为21/kgm,而池塘的水面面积2100100Sm,则池塘可承载的鱼的重量为100100kg;2、每条成鱼的重量为2kg/条,则池塘内所饲养的鱼的最多条数为10010050002n条;3、365天为一批鱼的生长至销售的周期,因此三年共可以养殖三批此种鱼类。综上,我们可以得到Max10333500012.7190500ZZnZ元元建议方案:在这个模型的基础上,我们就设计出了能获取较大利润的三年的养鱼方案,即三年池塘共养殖三批该种鱼类,每批投放鱼苗10kg即5000条,将鱼养殖365天长至成鱼,变可获得较大的利润,且该利润为190500元。七、模型评价优点:1、本文的模型在建立过程中考虑到养殖天数与利润的关系得出了一套获取较大利润的养鱼方案。2、充分运用dev-c++编译器来编程求解,求解过程简便,所得数据合理。3、该模型实用性较强,对现实有一定的指导意义。缺点:1、没有完全解决捕捞的时间问题,只解决同批鱼同时全部捕捞的情况,但可将这个模型运用到同批鱼不同时捕捞的情况中八、模型的改进与推广我们可以将该模型推广到同批鱼不同时打捞的情况中,按照该模型的基本思想进行解答,可将这种更复杂的情况分阶段考虑。此外,我们的模型可以从实际问题的更复杂性来进行调整。这个模型比较接近现实,它很有实用价值,可以为农业生产方面提供参考。参考文献【1】姜启源,谢金星,叶俊.数学模型(第三版).北京.高等教育出版社,2003.8【2】施光燕,董加礼.最优化方法.高等教育出版社,1999.9