判定覆盖率和判卡培养:修订间差异

来自LoveLive Wiki
跳到导航 跳到搜索
无编辑摘要
无编辑摘要
第146行: 第146行:
表3-4 置信水平
表3-4 置信水平


[[File:表3-4.png|600px]]
[[File:表3-4.png|700px]]





2017年2月15日 (三) 13:32的版本

——Lovelive SIF判定覆盖率分布自重合研究及高级判卡培养


摘要

(1)作者在之前发表的文章中,判定覆盖率的高阶自重合存在假设和判定原理分析有误;

(2)通过实验研究发现,N判在自身的覆盖区间内达到一次或者多次note计数条件,则在本次覆盖结尾进行一次技能触发的判断;

(3)根据最新研究结果,修改判定覆盖率分布算法,更新LLhelper判定覆盖率分布计算器;

(4)分析了判卡适合培养的条件为:条件note相对较大、技能概率高、覆盖时间相对较短。


第一章 原判定技能研究不足之处

1.1 原高阶自重合存在假设

  作者在去年对N判的研究中,在《Lovelive判定技能的分析及关于谱面的覆盖分布》发表的关于判定覆盖自重合的研究结果,通过录像分析发现:N判若在自身的覆盖区间内达到判定触发的条件,则触发累积到本次覆盖结束后进行连续覆盖[1]。由此结果所提出的理论中,进行了“高阶自重合存在”的假设,即在自身覆盖区间内,多次达到判定触发条件,则会多次累积触发。

  由于当时实验条件有限,并未对此进行验证,而判定覆盖率分布计算器是以此为基础进行算法设计的。在本文的最新研究中,发现“高阶自重合”存在假设有误,因此之前的判定覆盖率计算结果有误(即之前的判定覆盖率计算结果会偏大,Lv4~Lv8等高级的UR判或者触发间隔很小的SR判在高密度谱面下不同程度的偏高,低级判卡影响较小)。

1.2 原判定原理分析

  原分析:N判(以及C判)在自身的覆盖区间内达到判定触发的条件,则触发累积到本次覆盖结束后进行连续覆盖。在最新的研究结果中表明,实际为:N判在自身的覆盖区间内达到一次或者多次note计数条件,则在本次覆盖结尾进行一次技能触发的判断。

  此时,在一次覆盖区间内若达到多次计数条件,会浪费一部分一阶自重合的概率(即之前的计算结果在这一方面也会偏大,覆盖时间长的判卡收到影响更大)。

  作者在本次实验得出结论后,立即对判定覆盖率分布计算器的算法进行了修改,现已在LLhelper上更新,若有条件的用户希望能提供测试和反馈。

第二章 自重合现象实验验证

2.1 实验目的及原理设计

  由于我们的目的为,验证高阶自重合是否存在,因此需要根据假设设计一个高阶自重合可能存在的场合,然后实际运行SIF程序,以此观测高阶自重合是否存在。

  由于一阶自重合是在之前的实验中确实观测到的,因此我们需要观测二阶自重合的存在与否,若二阶自重合存在,则有可能更高阶的自重合存在,需进一步的验证。高阶自重合是在二阶自重合的基础上连续触发判定才会存在的,因此若二阶自重合不存在,则高阶自重合没有存在的条件。

2.2 实验平台

  【本小节为ieb提供的黑科技】

2.3 实验过程

  我们将实验卡组设置为9个Lv8旗手妮(31note 79% 6s),自制谱放出32个note使得旗手妮达到第一次触发的条件;在第一个覆盖周期内自制谱放出64个note,这样就形成两次触发条件,后面放空观察,并且在50s的位置放置一个空note,消除可能的歌曲结束影响。

  在之前的研究中我们知道,这9张卡片的覆盖是相互独立的。因此一次测试过程就相当于9次伯努利试验;如果存在二阶自重合,就能观测到3次等间隔的判定连续覆盖。(一个旗手妮连续触发3次的概率是51%,9次伯努利试验,观测到的概率大约99.7%),如果观测不到3次连续覆盖,说明存在二阶自重合的假设检验在某个置信水平下不成立。


图2.1.jpg

图2.1 实验过程

2.4 实验结果分析

  作者在这个设计的场合下进行了数次测试,均未观测到三次等间隔的判定连续覆盖,而只能观测到两次等间隔的判定连续覆盖(其中会出现不等间隔的触发立绘,这是因为有的卡片在第一次条件点没有触发)。

  根据假设,这个过程中应该有很大概率观测到三次等间隔的判定连续覆盖,而实际没有观测到。说明在SIF程序中“高阶自重合”不存在。在设计的过程中,本应覆盖3次的卡片结果只覆盖了两次,说明高阶自重合的状态会被吞掉。

2.5 结论

  若在自身的覆盖区间内多次达到判定触发的条件,本次覆盖结束后连续覆盖只有一次。即N判卡覆盖率分布存在一阶自重合,不存在高阶自重合。


  推测SIF程序中只储存了判定状态是否存在,没有储存判定存在的时候判定触发了多少次。


第三章 一阶自重合继承率及边界状态实验分析

3.1 判定覆盖状态的继承及边界继承

  我们先把判卡在一首歌中所有的状态(状态起点)在时间轴上列出来,如下图所示,带有颜色标记的为判卡在打到计数note的时候就触发的状态,没有受到前面区间的影响,在本文中也将其称为“零阶状态”,而没有颜色标记的状态,都是在某个覆盖区间结束以后接着的状态,即发生了一阶自重合的状态,简称“一阶状态”,一阶状态可以看做是对前面某一个覆盖状态(参考状态)的“继承”,也可称之为“继承状态”,被继承的状态有可能是零阶状态,也有可能是一阶状态。定义“继承率”:继承状态存在的概率与参考状态存在的概率的比值。


图3.1.png

图3.1 状态的继承


  在歌曲BPM为某些特点数值时,有时候会出现继承状态和零阶状态起点相等的情形,即前区间某个状态的结尾刚好达到了判定的计数条件(如图中的36860本身是零阶状态,又恰好有可能继承31360)。那么此时这个区间结尾对于这个计数条件是无影响还是算作一阶自重合,则需要进行实验分析。

3.2 实验原理设计

  由于对SIF程序的反编译代码的解读较为困难,因此猜测判定状态的继承,在SIF程序中有几种可能的情形,以吃瓜希(Lv8 74%)为例,如果在一次覆盖区间内,有3个达到计数条件的点,那么SIF程序对这些点会作出可能的几种操作:或操作,即这三个计数点,只要某一个达到触发条件,前状态就会被继承;重复置F,即达到了一次触发条件,再达到一次触发条件时会把继承状态置否;第三种,二次达到触发置否后,三次达到触发又置是;第四种,不管有几次,只做一次判断。

  下表列出了,三个计数点和对应的程序操作的真值表,并计算出了这些情形对应的继承率。

  除此之外,还要考虑到参考状态为标准一阶状态,参考状态为推移一阶状态是否有差别。


表3-1 三次触发点分析

表3-1.jpg


  对于边界状态,设计一个情景,使得某一个零阶状态和某一个继承状态起点相等(这时该点会有零阶状态和继承状态并存)。并在继承状态和零阶状态中间插入一个零阶状态(否则无法在概率上进行辨别)。若某一个触发点与参考状态的结尾刚好相等时,会受到参考状态的影响,计算零阶率时将参考状态计入得到一个实测率的估计值;若不受影响,则计算零阶率时不将参考状态计入得到另一个实测率的估计值。然后观察实测率与哪个值相接近,得到结论。

3.3 实验平台

  本次实验在两个平台分别进行,其一在【ieb提供的黑科技】测试了Lv8的吃瓜希,其二在日服对Lv8小判(小判与大判使用同一套触发function,只是改判function中有GOOD的区别),在宝物MASTER中进行测试。

3.4 实验过程

  (1)根据实验原理设计谱面,在设计的谱面下,用9个Lv8吃瓜希测试录像,记录了315组数据,记录每一个点技能发动的次数。

  (2)用Lv8小判打宝物MASTER并录像,分析录像获得667组数据,记录一段时间内每一个观测点技能发动的次数。

  (3)汇总分析。


图3.2.jpg

图3.2 实验过程


3.5 实验结果分析

  对吃瓜希的测试结果如下表所示,两个观测继承率分别为184/246=0.748,113/162=0.698,两个观测点可以看作246次和162次的伯努利试验,分别计算观测到184次和113次的二项分布概率的累积值,在0.982,0.15,0.555的假设下累积值都在趋近于0的概率范围内,而在0.74的假设下,累积值为0.636和0.127在无法拒绝0.74的假设的范围内。因此拒绝前三个假设,认为继承率等于技能概率。


表3-2 吃瓜希测试分析

表3-2.png


  对小判的测试结果如下表所示,36860的零阶状态若受到31360的影响,则当前数据下测试结果应该在184.5附近,若不受到影响,则测试结果应该在261附近。实测结果为191。另外,数据中间隔两个触发点的继承率也可以看到,总计为186/354=0.525,在0.001的置信水平下也能拒绝0.75假设而不能拒绝0.5(Lv8小判技能概率为0.5)假设。


表3-3 小判测试分析

表3-3.png


表3-4 置信水平

表3-4.png


3.6 结论

  数据表明在判定区间内触发一次或者多次,并不是“将连续覆盖状态置true”,而是“在覆盖结尾形成一次技能触发的判断条件”,即在SIF程序中,N判在自身的覆盖区间内达到一次或者多次note计数条件,则在本次覆盖结尾进行一次技能触发的判断。因此继承率等于技能概率。


  若某一个零阶状态起点与某个参考状态的结尾刚好相等时,该零阶状态会受到参考状态的影响,形成原地的(实际会偏慢1帧,后续覆盖率的分布计算时忽略这个影响)一阶自重合。

第四章 新研究结论下覆盖率分布算法的修改及验证

4.1 蒙特卡洛法覆盖率分布模拟

  由于每次N判的触发与否是随机的。通过计算机模拟Live过程,得到Live过程的N判覆盖分布的随机过程的一次抽样;重复多次抽样并统计,得到技能覆盖频率分布的实验值;将该实验值作为“覆盖概率分布”的估计值。

  我们根据N判的特性抽样出一次Live中的“起点”,即N判技能在哪些位置上触发了。然后计算出本次抽样的判定覆盖分布。

4.2 模拟方案(时间轴分析)

  本方案以最直观的程序过程来描述之前研究中所观测到的N判特性,逐毫秒分析,先将覆盖终点置0,累积可能的继承置0,当前时间点若大于覆盖终点,则没有覆盖状态,此时若没有继承状态,遇到计数条件点时,进行抽样,如果得到的结果为技能发动,则更新覆盖终点。若没有覆盖状态而有继承状态,则进行抽样,如果得到的结果为技能发动,则更新覆盖终点,并累积可能的继承置0。

  当前时间点若小于覆盖终点,则有覆盖状态,当遇到计数条件点时将累积可能的继承置1。


图4.1.png

图4.1 方案流程


  笔者使用Matlab编写程序进行了模拟,下图为Lv8魔术姬在《告白日和》EX谱面下的覆盖分布模拟结果。


图4.2.png

图4.2 模拟结果


4.2 覆盖率分布dp

  覆盖率分布的计算过程,和笔者在之前文章中的分析类似。设第i个触发点的第n个状态存在的概率为[math]p_{in}[/math],首先考虑覆盖起点,即第i个触发点的第n个状态存在的位置:(1)条件起点;(2)第1个~第i-1个触发状态的终点。

  接下来计算概率,考虑[math]p_{i1}[/math],即此时这个触发点没有被移动到前区间的终点,满足这种情况的条件:第i次触发且第1次到第i-1次触发没有覆盖到第i次的条件起点。由于每算完一个状态都会把覆盖率写入时间轴,因此可以直接从时间轴读取当前分析点的前状态覆盖率[math]p_t[/math]

此时:[math]p_{i1} = p * (1 - p_t)[/math]

  考虑[math]p_{in}[/math]:第i次触发的起点被移动到[math]p_{(i-k)n}[/math]的终点,即继承状态,此时要排除掉高阶自重合的情形,我们先来看一下发生了高阶自重合而被吞掉的状态有什么特点。如下图所示,每一次触发,有可能在条件起点覆盖,也有可能被移动到前区间的终点,但是图中如果3次都触发,第二次触发被移动到第一次触发的终点,本来应该被移动到第二个状态的后面的最右边的三次触发的一个状态,由于高阶自重合的不存在而无效。仔细观察我们可以看到,这个被吞掉的状态的“参考状态”的起点在第三个条件起点的后面。


图4.3.png

图4.3 失效状态分析


  对其他的多种状态进行分析发现,当分析某个触发点的某个状态时,以该触发点的前触发点作为参考,如果“参考状态”的终点在当前分析的条件起点后面,那么起点有可能被移动;如果“参考状态”的起点在当前分析的条件起点后面,那么当前分析状态会失效。

  排除掉了失效的状态后,剩下的状态就在前状态存在的概率下,乘以继承率p即技能概率就得到了。

此时:[math]p_{in} = p * p_{(i-k)n}[/math]

  在计算了[math]p_{in}[/math]的继承后,后续计算要做计数,以免重复计算继承率。

4.3 覆盖率分布算法的验证

  对于同一个判卡在同一个谱面中,将上述概率计算算法的计算结果,与蒙特卡洛模拟法的结果进行比较。如图所示,为Lv8捉奸鸟在sgEX谱面的覆盖分布的验证。


图4.4 (1).gif

图4.4 计算结果与模拟结果相比较


  对多种判定技能和多种谱面进行计算与模拟,分别比较验证覆盖率分布算法,计算结果均能与模拟结果相等。

  对Lv8小判在宝物MASTER的667组数据实测状态数与模拟状态数相比较,所有观测点均未观测到数据异常(未落在二项分布的99%区间外)。


表4-1 实测分布与模拟分布比较

表4-1.png


第五章 高级判卡培养

5.1 判定覆盖率的自重合损失

  在之前的“高阶自重合”存在假设中,判定覆盖率在Live过程中不会被浪费,而只在歌曲结束的时候有一定的损失。根据现在的研究结果,如果在一次覆盖区间内,判定触发了两次以上,由于高阶自重合不存在,使得部分状态失效,从而造成覆盖率的损失;另一方面,在一阶自重合时,如果区间内有多个触发点,这些触发只有可能继承一次,使得部分触发点失效,也造成了覆盖率的损失。

  定义,覆盖率自重合损失率(自重合损失率):某一判卡在某一谱面下的“总覆盖率”与“高阶自重合存在假设下的总覆盖率(即无损覆盖率)”之差的绝对值。

  根据总覆盖率的类型(GOOD区间覆盖率、总note覆盖率、Trick覆盖率等)还可以分别定义多种自重合损失率,这些值都比较接近,本章就以总note覆盖率作为讨论。

5.2 高级判卡的覆盖率及自重合损失率分析

  我们培养判卡的主要目的有两个,减少断连和增加得分(主要指Trick宝石),从实用效果来看,都希望能有高覆盖率的判卡(组),但是当卡组中某一张判卡的覆盖率很高的时候,其他判卡的边际覆盖率就会接近0,所以培养会趋向于少量高等级培养。

  另一方面,随着判卡的等级提高以及谱面的密度提高,判定覆盖率都会提高,但是自重合损失率也会提高。因此我们尝试分析一下什么情况下覆盖率高的同时,自重合损失率并不太高。

  自重合损失,发生的条件是一次覆盖区间内,有两个以上可能的零阶点,因此容易发生这种情况的卡片,其条件note比较小,覆盖时间比较长,在谱面密度较高的时候容易发生。下面取了几个典型的情况对此进行分析。


表5-1 自重合损失率分析(1)

表5-1.png

表5-2 自重合损失率分析(2)

表5-2.png

表5-3 自重合损失率分析(3)

表5-3.png


  我们发现,在高密度谱面下,自重合损失率最大的并不一定是Lv8,由于此时基础覆盖率和一阶自重合的比重已经很高,高阶自重合边际量较小,损失的情形相对较小,另外结尾损失占比会较高。取某一判卡各个等级在不同密度下的谱面自重合损失率相比较,如下图所示。


图5.1.png

图5.1 自重合损失率随谱面密度的变化


  我们发现,随着谱面密度的降低,自重合损失率的峰值向高等级方向移动;而判卡的条件note越大(如旗袍妮),或者相对覆盖时间越短(如花语花),或者基础覆盖率越低(如红叶妮),自重合损失率的峰值越容易偏向高等级;在高密度谱面下,UR判的自重合损失率峰值往往出现在Lv6附近。


图5.2.png

图5.2 不同判定技能的自重合损失率


  上图在同一谱面下,对几种判卡的自重合损失率进行比较,其中,天女绘和花语花的条件note为17,吃瓜希和旗袍妮的条件note为32,在相同的条件note比较中,花语花和吃瓜希的覆盖时间较短。我们可以看到,在条件note相对较大,覆盖时间相对较小的时候,自重合损失率相对较低。

  我们回到表格中继续分析,由于我们所使用的是判卡的覆盖率,而非自重合损失率,因此损失率只作为参考,表格中所列出的几种判卡,可以看到,吃瓜希和旗袍妮的覆盖率相对较高,但是,捉奸鸟和花语花的覆盖率也较高(但她们的自重合损失率并没有更低),一方面,略低的条件note往往可以获取较多的一阶自重合;不是太低的相对条件note有较小的一阶自重合损失;另一方面可以覆盖更多的开头;再者,她们的技能概率相对较高(花语花比同样的17note的天女绘高了20%……)。


  综合上述分析,判卡具有优势的条件为:条件note相对较大、技能概率高、覆盖时间相对较短。在单判卡培养计划下,如果主打高密度的谱面,培养目标应该在Lv8;多判卡(双判)培养计划下,则培养到Lv4~Lv5就已经具有足够的综合覆盖率、低的边际覆盖率损失、低的自重合损失。

  对于相对长覆盖时间的判卡,相对条件note较小的判卡,若主打高密度谱面,则培养价值不高。另外判卡培养主要是指UR判,因为培养SR判不如培养分卡,如果单纯需要覆盖率的话不如上九判。

结语

作者:各种化肥

研究协力:ieb,潜水员


参考文献

1.各种化肥.Lovelive判定技能的分析及关于谱面的覆盖分布[EB/OL].


讨论帖地址:http://tieba.baidu.com/p/4982295525