星露谷物语吧 关注:447,123贴子:2,776,946

【浅谈】基于线性规划的农作物种植策略分析

只看楼主收藏回复

鄙人387h的休闲玩家,已完美通关某次游玩意识到星露谷物语农田种植的行为较为简单,只需要种植浇水和收获几个操作,农作物的生长规律也很简单,所以一直有对种植策略进行理论分析的想法,最近刚好有空就来随便搞下。先叠甲:本理论分析纯属图一乐,实践是检验真理的唯一标准,具体怎么样才赚钱还得看实际游戏,大家喜欢咋玩就咋玩。索菲娅镇楼图


IP属地:重庆来自Android客户端1楼2023-08-29 15:02回复
    本贴只讨论农作物种植,钓鱼挖矿等均不在考虑范围之内(所以才说仅图一乐)。因为要编辑公式,所以我直接在Word里打字了,直接贴上图


    IP属地:重庆3楼2023-08-29 15:12
    收起回复
      系数矩阵A P D等都可根据农作物的属性值求出,假设每次浇水都是固定消耗2点体力,而最大体力值我先设置为初始体力270的90%,即E=243。
      容易看到这是一个整数线性规划(ILP)问题。熟悉算法的应该知道,0-1 ILP(变量只取0或1的ILP)是NP难问题,所以本问题也是一个NP难问题。因此本帖仅是找一个(可能有多个方案)尽可能好的解,不能给出全部最优解。如果我们把X是整数的条件去掉,则变为P类的线性规划(LP),这是很容易求得最优解的。虽然对应的LP问题的解如果不是整数取值的话对我们来说毫无意义,但这可以为我们的最终收入估计一个上界(因为ILP的定义域含于对应的LP的定义域)。
      我随便用MATLAB写了下代码,搜索解的最大时间设定为60s


      IP属地:重庆4楼2023-08-29 15:27
      回复
        假设在春天,考虑6种农作物,分别是"花椰菜", "青豆", "甘蓝菜", "防风草", "土豆", "草莓"。其中土豆暂时假定不能有概率收获多个土豆,草莓设定与游戏一样,只能春13购买(通过设置其他日期价格为999来实现)。
        每日固定收入f设置为游戏起始的500G,除此以外没有任何额外的收入。模型均假定购买后当天播种。求得的一个解我手搓了一个表格来展示,农作物下面的数字代表购入的种子数量,下面绿色背景的数字代表当天结束时的余额。


        IP属地:重庆5楼2023-08-29 15:33
        收起回复
          楼主的最优解是指经济收入的最优解还是耕种经验的最优解?
          另外,草莓和青豆是可以重复收获的作物,每次收获都会有耕种经验,也都可以卖了换钱


          IP属地:北京来自Android客户端6楼2023-08-29 15:49
          收起回复
            MATLAB犯病了,稍后更新


            IP属地:重庆来自Android客户端7楼2023-08-29 16:20
            回复
              cy


              IP属地:湖南来自iPhone客户端8楼2023-08-29 16:53
              回复
                【实验2】春季每天固定500金收入
                方便起见标记下每次实验序号,之前的只有初始500金的记作实验1。
                在实验1中每日基础收入只有第一天有500的起始资金,本次我们以每天钓鱼赚钱500金为背景,假设每天都有基础的500金收入(第一天起始500G,第二天及以后的钓鱼500G)。求得一个最终金钱为35905金的解,与最优解的误差不超过100金。

                值得注意的是,种草莓后钱就基本没在用了,因为浇水的农作物太多,体力值限制了后续种子的购买。


                IP属地:重庆9楼2023-08-29 17:19
                回复
                  【实验3】春季钓鱼1000金收入
                  在实验二基础上,首日起始500金不变,第三天起每天钓鱼1000金(考虑到第二天钓鱼太多的话不能马上变现)。求得最终金币49125,与最优解误差不超过100金。


                  IP属地:重庆10楼2023-08-29 17:47
                  回复
                    高技术力


                    IP属地:江苏来自Android客户端11楼2023-08-29 17:51
                    回复
                      模型不太合理,浇水不应成为约束条件。二级的初级洒水器就能解决浇水问题。13天前花在刷铜铁和钓鱼的时间分配才应该是限制条件。


                      IP属地:广东来自Android客户端12楼2023-08-29 18:13
                      收起回复
                        让我来把你的模型变复杂
                        第一次收获和制作稻草人各有100g,赚5000g会有邮件送500g或饼干,赚15000g邮件送500g
                        25000g开山洞,如果选蘑菇房每天有400g额外收入


                        IP属地:河北13楼2023-08-29 18:17
                        收起回复
                          【实验4】春季无额外基础收入(修正版)
                          我注意到之前都没有考虑到初始赠送的15个防风草,所以现在假定初始防风草必须第一天种植并浇水收获,要实现这点只需要修改前4天的体力值上限和让第五天基础收入增加15个防风草的价格即可。
                          另外,之后所有实验中土豆价格均考虑可以爆出多个土豆,并以期望价格(1.2倍售价=96G)作为其售价。
                          对实验1修正后,求得最优15000金,误差不超过50金。

                          【实验5】春季每日钓鱼1000金(修正版)
                          这是对实验3的修正版,求得最优50789金,误差不超过100金.


                          IP属地:重庆15楼2023-08-29 18:56
                          回复
                            暂时先做这些,大家有想法和建议可以说最好只需要改改参数就能跑代码考虑新的决策会引入额外的优化变量,得重新写代码。
                            仅考虑单次收获,利润率前三是花椰菜、土豆、防风草,所以实验结果中出现很多次种生长快的防风草来攒草莓钱的现象。不过反正是简化模型,大家图一乐看看就得


                            IP属地:重庆16楼2023-08-29 19:01
                            回复
                              @elysium 来学


                              IP属地:江西来自Android客户端17楼2023-08-29 20:57
                              收起回复