【戴森球计划】增产策略选取
莳槡_makuwa
编辑于 2022年10月19日 18:25
收录于文集
共3篇

一些碎碎念

关于戴森球计划如何决定一个物品应该是增产还是加速,虽然大半年前出过一期增产计算决策的视频了,但说实话讲得不咋地。再加上还是能见到拿着有些人发的如“3层以内加速3层以上增产”、“增产是累乘直接全增产”等专栏或是贴吧的不知道怎么用增产剂的萌新。鉴于从头到尾完整讲一遍实在太耗时,索性直接写个专栏,下次再有人问就拍他脸上。


先给结果

毕竟也不是所有人都有兴趣看理论计算的,这边可以先说结论。首先可以明确的一点是:没有特殊需求的情况下,最优产线的“增产和加速哪种方法好”是物品的一种属性,除非两条产线一条用高效配方一条用低效配方,不然物品的增产模式策略是不会改的。而实际情况下不同玩家需求不同,为此我专门做了一个Excel计算器,后文会放到下面链接里。这里就只给出几种常见目标的增产加速策略截图:

考虑所有工厂的密铺最少占地:

考虑所有工厂的密铺最少占地1

考虑所有工厂的密铺最少占地

不考虑增产剂、黑棒、接收站等工厂时的密铺最少占地(用来做单球原矿输入最高产量黑盒):

不考虑增产剂、黑棒、接收站等工厂时的密铺最少占地

不考虑增产剂、黑棒、接收站等工厂时的密铺最少占地2

全低级建筑低效配方(可燃冰除外)考虑所有工厂的最少耗电(注意重氢和光子加速是因为重氢默认只有加速,光子默认必带透镜)(物品名右侧数字代表生产每一个这个物品需要的电能,单位为MJ):

全低级建筑低效配方(可燃冰除外)考虑所有工厂的最少耗电1

全低级建筑低效配方(可燃冰除外)考虑所有工厂的最少耗电2

全低级建筑低效配方(可燃冰除外)考虑所有工厂的最少耗电1

考虑所有工厂的最少卡顿(估算,工厂卡顿数据来源于up主 @网页链接​ 测试的空档单球54k处理器黑盒的卡顿情况,实际卡顿因产线各建筑数量、比例、工作待机时间比、电脑性能等而异):

考虑所有工厂的最少卡顿1

考虑所有工厂的最少卡顿2


关于常见误区纠错

方便起见,下文默认增产剂是三级增产剂,级增产效果是+25%,加速效果是+100%。然后为了能让人明显感受到说法的错误,我会用游戏内的物品但自己假设的配方举一些比较夸张的例子。

首先是

3层以内加速,3层以上增产

这种说法,这种说法错在默认产线每一“层”的成本都一样。假设我有两个配方:

1铁矿==1s==>1铁块

10铁块==1s==>1钢材

按照这个说法,这产线一共就不超过3层,理应全加速。那么在全加速的情况下我想要每秒100个钢材的产能的话我就需要50个熔炉加速炼铁,5个熔炉加速炼钢,一共55个熔炉。而如果我炼铁的时候加速,炼钢的时候增产,那么我只需要40个熔炉加速炼铁,8个熔炉增产炼钢,一共只要48个熔炉。这个反例就可以证明“3层以内全加速”的问题了。

反过来如果我下游材料单台工厂制作需要对应的上游工厂数很小(比如湮灭约束求这样漫长的产线的)那么即使是4层以上也有可能要用到加速。

至于

增产省的建筑是累乘,加速省的建筑是累加,层数多就全增产,层数少就全加速

的说法用上面那个例子也可以反驳,我就不费力气画新图了。上面那例子就两层,最优方法是加速炼铁增产炼钢,只要48个熔炉,简单算一下全加速55个熔炉,全增产64+8=72个熔炉,用上面两种逻辑怎么说都说不过去。


计算正文

首先,我们可以提出一个“单位产能价格”(以下也有简称为“价格”或“成本”)的概念。这个价格可以看作是这个物品达到1/s产能时所需的工厂占地、电力、电脑算力、所需矿物的贵重程度×总数、或是上面那些东西的加权平均等等。不过不论如何,一种物品的价格P可以看作是由两部分组成:一部分是生产这个物品所需的材料的价格,我们暂且称之为P1;另一部分是用这些材料组装生产这个物品时产生的价格,我们称之为P0。显然,P1即为生产这根物品所需的各原料本身的价格之和,以无增产剂的电路板配方为例:

单位电路板成本=单位电路板所需的原料数*对应单位原料成本之和+生产成本

而此关系可以往复迭代下去,直至迭代到原矿为止,如:

%5Cbegin%7Baligned%7D%0AP(%E5%A4%84%E7%90%86%E5%99%A8)%26%3DP_%7B0%7D(%E5%A4%84%E7%90%86%E5%99%A8)%2BP_%7B1%7D(%E5%A4%84%E7%90%86%E5%99%A8)%5C%5C%0A%26%3DP_%7B0%7D(%E5%A4%84%E7%90%86%E5%99%A8)%2B2P(%E7%94%B5%E8%B7%AF%E6%9D%BF)%2B2P(%E5%BE%AE%E6%99%B6%E5%85%83%E4%BB%B6)%5C%5C%0A%26%3DP_%7B0%7D(%E5%A4%84%E7%90%86%E5%99%A8)%2B2(P_%7B0%7D(%E7%94%B5%E8%B7%AF%E6%9D%BF)%2BP_%7B0%7D(%E9%93%81%E5%9D%97)%2B%5Cfrac%7B1%7D%7B2%7D%20P_%7B0%7D(%E9%93%9C%E5%9D%97))%2B2(P_%7B0%7D(%E5%BE%AE%E6%99%B6%E5%85%83%E4%BB%B6)%2B2P_%7B0%7D(%E9%AB%98%E7%BA%AF%E7%A1%85%E5%9D%97)%2BP_%7B0%7D(%E9%93%9C%E5%9D%97))%5C%5C%0A%26%3DP_%7B0%7D(%E5%A4%84%E7%90%86%E5%99%A8)%2B2P_%7B0%7D(%E7%94%B5%E8%B7%AF%E6%9D%BF)%2B2P_%7B0%7D(%E5%BE%AE%E6%99%B6%E5%85%83%E4%BB%B6)%2B2P_%7B0%7D(%E9%93%81%E5%9D%97)%2B3P_%7B0%7D(%E9%93%9C%E5%9D%97)%2B4P_%7B0%7D(%E9%AB%98%E7%BA%AF%E7%A1%85%E5%9D%97)%0A%5Cend%7Baligned%7D%0A%5C%5C%E6%B3%A8%3A%E6%AD%A4%E5%A4%84%E5%BF%BD%E7%95%A5%E4%BA%86%E5%8E%9F%E7%9F%BF%E9%87%87%E9%9B%86%E5%92%8C%E8%BF%90%E8%BE%93%E7%9A%84%E6%88%90%E6%9C%AC

可见这里面的P1(处理器)实际上可以代换为生产一个处理器对应的所有历史产线的P0价格的总和。

第一层结论(粗略结论):根据游戏中增产剂的描述与表现,在不考虑增产剂和额外电力消耗的情况下,增产能减少20%的P1+P0,而加速则是减少50%的P0。所以简单考虑的话,当0.2(P1+P0)>0.5P0即2P1>3P0时,使用增产能使得P更小,反之则加速对应的P更小。这也是简单介绍增产加速怎么选时大家常说的

当前物品产线占生产这个物品的总产线的40%以下就增产,否则就加速

这个说法实际上已经大差不差了,唯一的缺陷是没有考虑使用增产剂时额外耗电造成的成本与增产剂制造本身需要的成本。以及只是给出了给定情况下某种物品的决策方式,不同物品历史产线不同,历史产线中的某个配方使用什么样的增产策略也会影响到总体历史产线的大小。那么我到底该如何选取增产策略来让最终我产品的成本最低呢?增产剂和电力的成本又应该如何考虑进去呢?

第二层结论(Excel给出的方案):

(对于某些人来说可能有点啰嗦,可以直接跳过看红字结论)

通过上述第一层结论的介绍,我们可以得知:

对于一种物品来说,应该增产还是加速需要比较的仅仅是生产这个物品所需的产线和其对应原料数目的历史总计产线的价格即可。当前产线在总产线中占比越高,配方就越应该用加速策略。同时,我们还可以得知,不论物品是增产状态还是加速状态,其原料的价格之和越小,生产它的总价格就越少。由此我们可以再得出一条推论:

对于一种物品的价格来说,原料是以什么手段生产的都与它无关,它只需要关心这个原料的最终价格是多少就行,原料价格越低,这个物品最终做出来的价格也就越低。同样在制作这个物品时也不用考虑这个物品之后将用于制作什么材料,因为对于任意一种它的用途来说,这个物品的价格都是越低越好。

看到这里,有的读者可能就已经想到了。增产决策实际上就是一个动态规划问题。只要从底层原料开始,在已知其所有原料的最低成本的情况下找到它的最低成本,再将它的最低成本当做一个已知量代入它的下游产物即可。

没错,动态规划确实是很适合解决这个问题的算法——前提是生产链中不存在环与多产物配方。可惜的是游戏中这两个条件都不满足。

先说为什么会有这两个前提:

不允许“多产物配方”是因为我们计算物品生产成本的时候实际上只能计算完成这个配方的成本,如果一个配方有多种产物那么我们是无法找到一个通用方法来分配这个成本到不同产物上的。好在目前来说游戏里有多产物的配方都是去掉氢以后就只剩一个产物的配方。而氢气用轨道采集器采集时可以近似看作是0成本的物品,鉴于Excel功能有限,再加上在由于轨道采集器的过量供应在考虑时直接忽略副产物氢也无伤大雅。在Excel中就将氢当做无成本的原矿处理即可。

而“循环产线”的问题在于当一个物品下游的某个产物同时也是自己的原料时,就不存在“底层原料”这个概念了。比如游戏中最常见的就是用煤做成的增产剂喷涂在煤身上以加速制作煤、用增产剂喷涂的原料来制作增产剂、或是用黑棒发电以给黑棒工厂供电等。同样鉴于Excel功能有些,对于迭代计算会出现“循环嵌套”的报错。故在之后将展示的Excel文件中想要得到具体的循环原料的成本需要自己反复调试(谁有兴趣的话也可以想一个excel自动化计算的优化方法)。

除此之外,在考虑增产加速决策的时候我们除了考虑喷涂后的收益,还需要考虑增产/加速时的成本。也就是要考虑增产模式对于P0的影响。

基本上P0(当前产线制造成本)可以看做是由当前物品制造产线占地、当前物品制造所需电力*单位电力成本c、当前物品制造所用的增产剂价格(单位产出对应的原料数*单位喷涂对应的增产剂价格)三部分组成,即:

P_%7B0%7D%20%3D%20%E5%8D%95%E4%BD%8D%E4%BA%A7%E8%83%BD%E5%B7%A5%E5%8E%82%E5%8D%A0%E5%9C%B0%2B%E5%8D%95%E4%BD%8D%E4%BA%A7%E8%83%BD%E7%9A%84%E8%80%97%E7%94%B5%E9%9C%80%E6%B1%82%5Ctimes%20%E5%8D%95%E4%BD%8D%E7%94%B5%E5%8A%9B%E7%9A%84%E6%88%90%E6%9C%AC%2B%5Cfrac%7B%E6%89%80%E9%9C%80%E5%8E%9F%E6%96%99%E6%80%BB%E6%95%B0%5Ctimes%20P(%E5%A2%9E%E4%BA%A7%E5%89%82)%7D%7B%E5%8D%95%E4%BD%8D%E4%BA%A7%E8%83%BD%E5%A2%9E%E4%BA%A7%E5%89%82%E7%9A%84%E5%96%B7%E6%B6%82%E6%AC%A1%E6%95%B0%7D%20

简便起见,单位产物所需的原料总数称之为Xp。当我们以最小占地为优化目标时,为了统一单位,我们需要把电力的成本也转换成占地的成本。对于太阳能、戴森球等无维护成本的能源来说,只需计算太阳能板单位发电量的占地即可,而对于氘棒、太阳帆、黑棒等需要源源不断的燃料供应的发电模式来说,电力可以分为发电厂占地和或许会存在的燃料制造厂两部分。以喷涂后的黑棒为例,使用喷涂后黑棒给工厂供电时,每MW电网供应的成本c为:

c%3D%5Cfrac%7B%E5%B0%8F%E5%A4%AA%E9%98%B3%E5%8D%A0%E5%9C%B0%7D%7B144%7D%20%2B%5Cfrac%7BP(%E5%8F%8D%E7%89%A9%E8%B4%A8%E7%87%83%E6%96%99%E6%A3%92)%7D%7B7200-%E5%88%B6%E9%80%A01%E4%B8%AA%E5%8F%8D%E7%89%A9%E8%B4%A8%E7%87%83%E6%96%99%E6%A3%92%E9%9C%80%E8%A6%81%E7%9A%84%E8%80%97%E7%94%B5%7D

而单位产能的工厂耗电为达到这个产能所需的工厂数量×此工厂耗电,亦可以写成配方的制造时间×建筑耗电÷建筑的制作速度倍数,将配方面板的制造时间定义为t,建筑耗电÷建筑的制作速度倍数为建筑的一种属性定义为C(建筑名)。

同样工厂占地Xa即为配方对于工厂建筑的占地÷单个工厂生产此配方时的产能,亦可以写成配方的制造时间×建筑占地÷建筑的制作速度倍数,即:

X_%7Ba%7D%3D%5Cfrac%7Bt%5Ctimes%20%E5%BB%BA%E7%AD%91%E9%9D%A2%E7%A7%AF%7D%7B%E5%BB%BA%E7%AD%91%E5%80%8D%E7%8E%87%7D%20

不妨将建筑面积/建筑倍率定义为A(建筑名),则:

以使用自喷涂三级增产增产时为例,某个物品在不同增产决策配方下的生产成本(占地)的表达式可以表示为:

使用三级自喷涂增产剂时的价格计算公式

如果我们想上述对待处理器一样一步步转换迭代这个P(原料),当增产加速决策都确定时,最后就会得到一个关于c和P(增产剂)的线性代数式。从这里可以看出来不改变增产决策时,物品的最终成本与单位电力、增产剂成本之间具备线性关系,包括增产剂和燃料制造厂的产物本身也是如此(这个结论很重要,下面会用到)

于是就有了这个基于动态规划方法的增产计算器:

增产计算器单元格内容

计算器原理是对每一种物品的三种增产模式算出物品在这种增产模式下的成本,然后选取三种模式中的最低成本作为该物品成本被以该物品为原料的高级产物所引用。当输入电力成本和增产剂成本时,物品们就会从底至顶地计算出自己的最低成本,然后逐层往上传递自己的新成本,产线下游的高级原料便也会一一作出改变。


增产计算器使用介绍

增产计算器

简要地说一下这个计算器的使用方法

首先,需要在预设工厂这边输入你说用建筑的属性,所谓属性具体就是指设备倍率和设备耗电,各个设备的倍率和耗电在Excel工作表的第二面有给出。

在Excel的“建筑属性”工作表中找到对应建筑的属性

再粘贴至此处对应工厂的选取即可

然后自定义预设的工厂面积,产线占地参考在Excel的第三页,里面放了通常情况下的产线占地,有需求的话也可以自己改变参数

在产线成本中选中所需行然后复制

再在计算器页面中找到对应行粘贴即可

然后再配方选择栏里选取高/低效配方:

配方选择栏

点开“你的选择”那一栏对应物品的编辑栏,让它=低效/高效/直接开采那一单元格的坐标即可

在增产剂MK3的那一的“你选择的值”中输入随便一个值

这里输入了1

然后根据右边“此配方下的真实值”的数据一步步调试,比如可以把左边改成2,然后记录一下右边的增长比例

两次输入的值相差1,实际值相差0.25左右

上面的推论介绍过了,定义的增产剂价格和计算出的增产剂价格在配方决策不变的情况下是线性关系,设其为:y=kx+b,则通过这两个数据可以算出k≈0.25,b=12.1-2k≈11.6,再解一下这条直线和y=x相交时的方程,可以化为公式x=b/(1-k)。

(注:为了让大家方便操作我又顺手在旁边写了自动计算的公式

在这个位置直接复制并粘贴两次的输入值和真实值就会计算预计真实值,然后再复制粘贴数值就行了

但是除了增产剂以外还有电力这个因素要考量,我们可以通过同样的方式估算出此时的电力消耗

利用自动计算公式算出预计真实值

此时我们就会发现由于电力成本的变化又导致了增产剂成本的变化,这时候我们去改增产剂成本也是一样会引起电力成本变化的。在Excel里我们只能两边都一步步慢慢调试指导两个参量的输入值和实际值差不多为止了。

而如果你想做的是全球黑盒的最高产能下的配方选取,那么你就只需要考虑小太阳的占地就行了,不需要考虑增产剂和黑棒产线的占地,可以将发电成本设为仅计算发电厂大小的成本,将增产剂的成本设为0。

然后计算器就会自动算出各类物品的增产加速决策

计算结果

最左边的一列是固定原料成本时不适用增产剂的物品制造成本,左2是增产时的成本,左3是加速时的成本,左4是这三者之中的最小值,左5是可以自由选取的自定成本,默认为前三者最小值。也可以通过自己更改来决定某一种物品的决策、甚至将物品成本定义为0

默认状态

强制不使用增产剂

将成本定义为0(原矿化处理)

而要求最少卡顿时就是将产线占地那一栏替换为产线预估卡顿即可,要求最少电力时可以将产线占地全置为0,或将单位耗电的成本设置成一个大数

最少耗电参数示例


第三层结论(无简化无疏漏的完整分析):

其实大多数第二层结论的问题上面前面也都有提到过了,当初在制作这个Excel表格时也有不完备的地方,比如这边只考虑了使用三级增产剂的情况,但是在某些场景下可能一级或者二级增产剂是更为合适的选择。然后其实玩家也不是一开始就能用黑棒这样的高级燃料的,所以我还得把使用各种燃料的情况加上去。还有上述增产计算中并未考虑原料开采时的成本权重和珍贵矿物的权重。

之后(我也不知道是多久之后)我会出一个网页版的量化计算器,到时候里面也会加一个自动计算最优增产决策的功能(代码求解那个增产剂和发电成本的输入值和实际值的4元线性方程组可比自己Excel迭代手算方便多了)(我怎么老是在给自己挖坑)。而这些问题都将在新版本量化计算器里解决。

在完整算法里可能导致循环引用的除了电力以外还有3种增产剂,而且由于新量化计算器预计的功能是能兼容各mod或者更新后可能存在的配方的。所以到时候可能存在的循环引用不止3种。量化计算器的逻辑我之后会出一个新专栏(好了,又是一个坑),现在简要说明一下就是输入配方表后会自动根据配方表构建物品表与物品间的生产关系。在存在循环产物的前提下,物品间的生产关系是一个有向有环图。我们要做的第一步是去环。新建一个长度等同于物品种数的列表并定义头尾指针,不断重复将图中无子节点的物品放入头指针所在位置,将无父节点的物品放入尾指针所在的位置,并且在每次将物品放入列表后向中间移动对应的头尾指针。直至图中只剩下一个完整的环。将环中出入度最多的物品称作“循环关键物品”,并将关键物品取出,放入头指针所在位置并在关键物品列表中存入这个物品的相关属性。这样便可尽可能多地断开这个环与环中的子环。然后再次对剩下的图重复操作直到图中不存在物品为止。这样我们就能根据配方在极小的时间成本(约O(mkn)的时间复杂度,其中n为物品数,m为循环关键产物数,k为配方的平均原料种数)之内将物品按照从底至顶的顺序放入至物品列表中。即抛去循环产物,任何一个物品在物品列表的左侧都不存在其产物,右侧都不存在其原料。之后便可根据关键物品列表对关键物品做特殊处理后以迭代的方式从头到尾遍历物品列表以达到动态规划的效果。而所谓的特殊处理则是通过自动化配方选取后的反复迭代计算循环关键产物成本间的线性关系,求出各产物输入值=真实值时的解,然后再次迭代查看在新输入值的情况下真实值是否变化,若真实值发生变化则说明新输入值导致了增产加速决策的变化,那么就将新真实值作为新输入值,然后通过新输入值输出的真实值与上述新真实值进行比较然后再解方程。当方程解出的解带入计算出的真实值与输入值相同时,说明迭代已收敛,可以退出循环。

通过这种方法就能做出考虑了各种情况的最优增产加速决策。


全局最优性证明

编辑了两版,想了想毕竟是要让更多人能看懂的。还是用不那么学术的方法说吧。

那么我下面就用之前和别人讨论时部分别人问过的问题和我之前自己想过的一些问题来举具体的例子并作出解答。

首先是最基础的一个问题,这个问题其实上面介绍算法的时候就已经说过了,这边再用具体一点的说法重新描述一下,问题内容是:

有没有可能存在一种配方,增加其原料成本时增产的收益也会加大,甚至超过低原料成本时加速的收益,导致高原料成本增产的总成本比低原料成本加速的总成本低呢?

这是不可能的。高原料成本增产和低原料成本加速之间不好直接比较,但是我们可以间接比较。别忘了我们的增产加速决策的选取是在一种物品3中决策中选最小值。而上文介绍过在使用同一种配方时肯定是原料成本越低总成本越低。因此在这种情况下各中决策的总成本之间有以下关系:

%E4%BD%8E%E5%8E%9F%E6%96%99%E6%88%90%E6%9C%AC%E5%8A%A0%E9%80%9F%3C%E4%BD%8E%E5%8E%9F%E6%96%99%E6%88%90%E6%9C%AC%E5%A2%9E%E4%BA%A7%3C%E9%AB%98%E5%8E%9F%E6%96%99%E6%88%90%E6%9C%AC%E5%A2%9E%E4%BA%A7%E2%80%8B

故而不会存在问题描述的情况

问题二:

是否存在一种配方,比如说金刚石,在用于制造增产剂时应该少用点增产剂以降低增产剂在制造过程中的自消耗来降低总成本,而在别的配方里就是用增产剂喷涂再制造效果会更好呢?

这个问题的答案也是否定的。会问出这个问题,是因为在增产剂的循环配方中使用增产剂的话会增加增产剂在制造过程中自身的消耗,进而进一步降低完整一趟增产剂配方的净产出。从正面直接描述的话,如果金刚石在别的配方里应该用增产剂喷涂后的配方,那么就说明金刚石在这个增产剂成本的代价下喷涂后的总成本小于喷涂前的总成本,而这里面的总成本是已经算上了多用的增产剂的成本的了。将新的更小成本带入增产剂产线中金刚石的配方的话实际上会降低在这个增产剂代价输入值的情况下的增产剂成本。而增产剂成本变更后新的输入值应该减小,这就进一步降低了金刚石喷涂的消耗,最终增产剂的成本只会更小。所以如果增产剂的成本已经迭代到最小了,是不可能出现在其它配方中某物品的增产决策和增产剂产线中的增产决策不同的情况的。或者用一个讨巧的假设想法。首先我们知道的是如果有两个产量相等的产线,那么我们交换它们的用途,对于产线占地与产量都没有影响。举个具体点的粒子,如果我有100个加速制得的金刚石(自带所需消耗的增产剂产线)用于制作物品X,100个不用增产剂制得的金刚石用于制作增产剂。那么我们交换这两条产线的金刚石的输出口,用无增产剂的金刚石制X,用加速金刚石制增产剂。我们的产线面积和产能均不受影响。而如果存在“制X时用加速金钢石占地比用无增产金钢石占地要小”,那么我们把这一串无增产金钢石代换为加速金钢石,就能让总占地变小。同样把用于制增产剂的加速金钢石换为无增产金钢石也能让增产剂产线占地变小。从结果上来看,我们什么都没做,却让占地变小了,这显然是不合理的。

问题三:

我们是用迭代逼近的方法找到单位喷涂增产剂的成本的,但是对于不同增产剂成本的输入值,有着不同的增产策略,所以最终输入值——真实值的关系并不是一条直线,那么我们在迭代逼近时是否可能存在多解而我们找到的并不是最小解呢?

这也是不会的,首先通过之前说明过的,在同一种配方与增产决策下增产剂的最终成本其实可以代换为一个与输入值相关的线性表达式,如果把所有决策情况下的这个线性函数都画出来,那么大概长这样:

在配方的增产/加速决策不同时的增产剂实际成本与输入成本的关系

而我们在计算器里求出的真实值实际上是这一堆函数中在某个x时的最低点,而我们迭代出输入值与真实值相等的点实际上就是迭代出这个函数中最低点集合的新函数与y=x的交点。

函数集合中最低线段与y=x的交点

那么为什么这样一个折线段和y=x有且只有一个交点呢?

这就得从固定配方的具体的增产剂输入——真实值函数说起。对于自喷涂蓝色增产剂来说,其实际成本P(增产剂MK.Ⅲ)可化为

P(%E5%A2%9E%E4%BA%A7%E5%89%82MK.%E2%85%A2)%3D%5Csum_%7B%E5%8E%86%E5%8F%B2%E4%BA%A7%E7%BA%BF%7D%20(%E5%BB%BA%E7%AD%91%E5%8D%A0%E5%9C%B0%E6%88%90%E6%9C%AC%2B%E7%94%B5%E5%8A%9B%E6%88%90%E6%9C%AC)%2B%5Cfrac%7Bn%C2%B7P(%E5%A2%9E%E4%BA%A7%E5%89%82MK.%E2%85%A2)%7D%7B74%7D

其中,Σ内的内容是各个配方的执行趟数成他们的建筑和耗电成本,当配方的增产决策固定时,Σ的值也固定,增产剂的成本并不会影响它,而这个成本又一定是正数,所以固定配方和增产决策的增产剂输入——真实值函数一定是一个纵截距大于0的线性函数。那么,如果n>74,就代表直线斜率>1,它在第一象限的函数图像就一定在y=x上方,和y=x就一定不会有交点,故而当y=x与其中一条直线相交时,设交点为(x0,x0),那么在x<x0的范围内,其它直线要么斜率小于1,要么不可能与y=x在第一象限相交,而斜率<1的直线因为在x0处对应的y值≥与x0(不然(x0,x0)就不会是直线组的最低点了),所以当看向交点左侧,即x减小时,因为这些线段的斜率小,本身减少的量就小,再加上它们在x0处的y值初始值高,所以在x0左侧的任意一点x它们对应的y值都将>x。而在x0的右侧,由于与y=x相交的这条线段斜率本身<1,所以直线组的最低点≤这条与y=x相交的线段对应的y值<x值,故而也不可能与y=x相交。当然也不可能存在在第一象限无解的情况。因为有一个选项是生产增产剂的过程中不是用增产剂,这个选项的增产剂实际成本和输入值x无关,是个y=a,a>0的常值函数。它与y=x在第一象限必交于(a,a)。所以用迭代的方法一定能找到增产剂生产的最低成本最优解。