关于一键调配的基本原理(简单)

精华2019/1/18619 浏览综合
应论坛大豆的想法,我在这里大概的讲一下一键调配的图示以及为什么会提示出现补充工位的提示。
首先这里要感谢贴吧用户liao8210659,他在贴吧发布了一个一键调配的计算器,我也就直接使用他的计算器来进行讲解。
那么第一步,对于一键调配是要理解这四个字是什么意思。在这里我对于一键调配的理解是:通过调配人员数量使生产能力填充满仓库上限的时间相等。
在这句话中我们提取关键词,显而易见关键词有两个:一个是生产能力,一个是仓库上限。所以这两个数值会影响到我们最终得出的时间。
在贴吧中的公式中liao8210659额外设置了食物满仓时间,这里我们不做考虑。
设a,b,c,d,e,f,g,h,i,j,k,T,分别为各工位人数、建筑时间。
所有关于食物的方程:2.25a-2e-2f-5h-生产人数=粮仓差/T
所有关于木材的方程:0.8b-d-2f-10k=木仓差/T
所有关于石头的方程:0.28c-3i-3j-10k=石仓差/T
所有关于兽皮的方程:0.5d-2e-g=兽皮仓差/T
所有关于虔诚的方程:0.06e=虔诚差/T
所有关于草药的方程:0.02f=草药差/T
所有关于皮革的方程:0.4g-h=皮革差/T
所有关于马匹的方程:0.01h=马匹差/T
所有关于铜矿的方程:0.07i=铜仓差/T
所有关于铁矿的方程:0.01j=铁仓差/T
所有关于科研的方程:0.05k+0.02(忽略)=科研差/T
(……后续出现新的资源以此类推)
目标函数:a+b+c+d+e+f+g+h+i+j+k=生产人数
关于工位人数的约束:a、b、c、d、e、f、g、h、i、j、k>=0
将以上系数写入矩阵,解十二元一次方程组得a,b,c,d,e,f,g,h,i,j,k,T。
(PS.全是等号的线性规划很简单了,就是线代。)
(PS1.其实要用整数规划的,但……麻烦)
在上面的约束条件中 工位人数前的系数就是生产能力,如下图所示:
TapTap
那么,我们现在在知道了约束条件和目标函数后,就可以列出一个矩阵,这个矩阵长这个样子:
TapTap
在这个矩阵中,我们能够清晰的看出来资源的生产能力和仓库的上限差,为了便于计算,我将食物调到了满仓,仓储的具体图示如下:
TapTap
有了矩阵,能看出来仓库差,那么我们就可以去尝试的列出它的逆矩阵:
TapTap
逆矩阵的数字非常多,但不要紧,我们不在意那个。我们在意的是最右边那一列。
最右边的那列通过逆矩阵与矩阵图中最右边一列相乘得出,而这得出的得数就是我们所需要的人数。(进行一步取整操作)
最后一行的7470是秒数,2.08是将7470/3600得出的小时数。
这就是一键调配.
如果说我们的仓储上限不足会出现什么情况呢?
这里我们将兽皮仓库的上限调低:
TapTap
在这张图里你可以清楚的看到,要求满仓时需要猎人138123人,而1000的兽皮仓储上限支持多少人进行打猎工作呢?所以就算将猎人位置全部填满,你也到不了138123人。
用实际最大可工作人数减去生产人数,若存在负数,则无法进行一键调配因为调不了这么多的人去进行生产。
为什么有时候会提示猎人数量不足?
是因为你建造了比如 牧场 等生产需要兽皮的建筑,如下图所示,我们将马匹上限提到50000K:
TapTap
很明显,我们的猎人需要158875人,而我们的兽皮上限没有任何提高,我们再建设虔诚将之提到80000K:
TapTap
猎人的需求再一次增长。
显而易见,由于游戏机制,岗位人数受仓储上限影响,随着科技发展,像牧场,神庙等建筑的上限不断地提高,需要的猎人数量也越来越多,不仅仅要保证自身兽皮的上限还要保证马匹和虔诚点的生产,这就是为什么会提示 提升猎人的岗位 的原因。
当然这种情况也只有前期科技需求兽皮量不足的时候才会发生,到了城堡、航海、火器时代所需要的兽皮量实在是太大了,完全可以无视岗位数量了。
评论16
只看作者
最热
TapTap
写下你的想法...
弟弟
连一键调配大概原理都不懂都人能懂矩阵 线代?😂
啦啦呼啦圈
总结起来其实就是,一旦出现岗位不足的提示,必然是该资源消耗量急剧增加所导致,包括但不限于 科研时消耗掉所有的马匹或者虔诚点;前期建设时猎人小屋的建设速度跟不上马匹和神庙的建设速度。
RoJo丶汉
我寻思线代算是比较简单是哪里吧。。。
BrotherWei
所以总言之,遇到这种问题的解决方法就两种:
1 增设工作场所
2 消耗其他资源来延长时间 降低超负荷岗位的人口比重由于第一条存在建设时间问题无法起到立竿见影的效果 所以后者常用
啦啦呼啦圈
正解,但是在很多人看来这是一个bug,他们一般不会去想到无关联的资源之间人员分配是呈负相关的。
Pluto
还有一种方法:在市井中购买生产需要消耗兽皮的材料,减少兽皮的消耗量,进而避免这种情况。
RyllPan
我就感觉一件调配没啥用,还不如自己看看时间
啦啦呼啦圈
这个是我写给老版本的一键调配,现在这个一键调配有bug,它就是像我文中写的那样只是按仓库上限去调配人口,伟人科技加的食物没办法算进去。
我从08年就开始等陈sir了
我从08年就开始等陈sir了
好,好厉害的样子!
Pluto
你管这玩意儿叫简单?!
暖
内部人员?
一夜鱼龙舞
创建模型,用lingo或matlab或cplex求解就行
尹家大少
厉害了。。
漂流
我凑,真是个大佬,我能想到矩阵计算很麻烦,但没想到这么复杂
枫叶儿呀
有个软件叫LINGO 专门解线性规划问题的
38
19
16