系数矩阵A P D等都可根据农作物的属性值求出,假设每次浇水都是固定消耗2点体力,而最大体力值我先设置为初始体力270的90%,即E=243。
熟悉算法的应该知道,0-1 ILP(变量只取0或1的ILP)是NP难问题,所以本问题也是一个NP难问题。因此本帖仅是找一个(可能有多个方案)尽可能好的解ope体育,不能给出全部最优解。
如果我们把X是整数的条件去掉,则变为P类的线性规划(LP),这是很容易求得最优解的。
虽然对应的LP问题的解如果不是整数取值的话对我们来说毫无意义,但这可以为我们的最终收入估计一个上界(因为ILP的定义域含于对应的LP的定义域)。
假设在春天,考虑6种农作物,分别是花椰菜, 青豆, 甘蓝菜, 防风草, 土豆, 草莓。
其中土豆暂时假定不能有概率收获多个土豆,草莓设定与游戏一样,只能春13购买(通过设置其他日期价格为999来实现)种植。
每日固定收入f设置为游戏起始的500Gope体育,除此以外没有任何额外的收入ope体育。模型均假定购买后当天播种。
求得的一个解我手搓了一个表格来展示,农作物下面的数字代表购入的种子数量,下面绿色背景的数字代表当天结束时的余额。
在实验1中每日基础收入只有第一天有500的起始资金ope体育,本次我们以每天钓鱼赚钱500金为背景,假设每天都有基础的500金收入(第一天起始500G,第二天及以后的钓鱼500G)。求得一个最终金钱为35905金的解,与最优解的误差不超过100金。
值得注意的是,种草莓后钱就基本没在用了,因为浇水的农作物太多,体力值限制了后续种子的购买种植。
在实验二基础上ope体育,首日起始500金不变,第三天起每天钓鱼1000金(考虑到第二天钓鱼太多的话不能马上变现)。求得最终金币49125,与最优解误差不超过100金。
我注意到之前都没有考虑到初始赠送的15个防风草,所以现在假定初始防风草必须第一天种植并浇水收获,要实现这点只需要修改前4天的体力值上限和让第五天基础收入增加15个防风草的价格即可。
另外,之后所有实验中土豆价格均考虑可以爆出多个土豆,并以期望价格(1.2倍售价=96G)作为其售价。