60c21ae346
rules 是纯计算,src/rules 共 1761 行:方法.md 第六部分的全部公式、第七部分的余额与扣次、4.2 的入口分配,以及种子与规则登记表。 预期值有三个来源:方法.md 的手算例;tests/fixtures/rules/ 下不看实现写的 Python 脚本;参考项目 calc15、calc14b 里与现行方法一致的部分。审阅做了两轮,每轮都换一个全新上下文的子 Agent,提出的问题都已修复或写明不修的理由。 用户确认的约定(原话"1–8 都同意"):入池、采纳、消融中发现都用严格不等号;成本用 max(0, ĝ₀);没测的格附"含它的最好组合"的净值;战绩在分数原值上判。三个数改为严格递增后,删掉了尖峰的全部专门处理(bfb96ba)。vocab 里 Range 的说明同步改为严格递增。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1659 lines
30 KiB
JSON
1659 lines
30 KiB
JSON
{
|
||
"generator": "gen_forward_info.py",
|
||
"tolerance": {
|
||
"abs": 1e-12,
|
||
"note": "预期值由有理数精确算出;与浮点实现比较用绝对误差 1e-12。"
|
||
},
|
||
"scenarios": [
|
||
{
|
||
"name": "cdf_method_example_2.44_2.52_2.62",
|
||
"section": "6.2;约定 1–4",
|
||
"params": {},
|
||
"input": {
|
||
"range": {
|
||
"q1": 2.44,
|
||
"q5": 2.52,
|
||
"q9": 2.62
|
||
},
|
||
"x": [
|
||
2.3,
|
||
2.36,
|
||
2.4,
|
||
2.44,
|
||
2.48,
|
||
2.52,
|
||
2.57,
|
||
2.62,
|
||
2.67,
|
||
2.72,
|
||
2.8
|
||
],
|
||
"densityAt": [
|
||
2.3,
|
||
2.36,
|
||
2.4,
|
||
2.44,
|
||
2.48,
|
||
2.52,
|
||
2.57,
|
||
2.62,
|
||
2.67,
|
||
2.72,
|
||
2.8
|
||
]
|
||
},
|
||
"expected": {
|
||
"points": [
|
||
[
|
||
2.36,
|
||
0.0
|
||
],
|
||
[
|
||
2.44,
|
||
0.1
|
||
],
|
||
[
|
||
2.52,
|
||
0.5
|
||
],
|
||
[
|
||
2.62,
|
||
0.9
|
||
],
|
||
[
|
||
2.72,
|
||
1.0
|
||
]
|
||
],
|
||
"cdf": [
|
||
0.0,
|
||
0.0,
|
||
0.05,
|
||
0.1,
|
||
0.3,
|
||
0.5,
|
||
0.6999999999999991,
|
||
0.9,
|
||
0.9499999999999997,
|
||
1.0,
|
||
1.0
|
||
],
|
||
"density": [
|
||
0.0,
|
||
1.249999999999999,
|
||
1.249999999999999,
|
||
4.999999999999996,
|
||
4.999999999999996,
|
||
3.9999999999999964,
|
||
3.9999999999999964,
|
||
0.9999999999999991,
|
||
0.9999999999999991,
|
||
0.0,
|
||
0.0
|
||
],
|
||
"mean": 2.527
|
||
},
|
||
"note": "方法 6.2 示例:低于 2.57 的把握 0.70;尾巴 2.36–2.44、2.62–2.72。"
|
||
},
|
||
{
|
||
"name": "cdf_asymmetric_narrow",
|
||
"section": "6.2;约定 1–4",
|
||
"params": {},
|
||
"input": {
|
||
"range": {
|
||
"q1": 1.2999,
|
||
"q5": 1.3,
|
||
"q9": 1.3005
|
||
},
|
||
"x": [
|
||
1.2997,
|
||
1.2998,
|
||
1.29995,
|
||
1.3,
|
||
1.3002,
|
||
1.3005,
|
||
1.30075,
|
||
1.301
|
||
],
|
||
"densityAt": [
|
||
1.2997,
|
||
1.2998,
|
||
1.29995,
|
||
1.3,
|
||
1.3002,
|
||
1.3005,
|
||
1.30075,
|
||
1.301
|
||
]
|
||
},
|
||
"expected": {
|
||
"points": [
|
||
[
|
||
1.2998,
|
||
0.0
|
||
],
|
||
[
|
||
1.2999,
|
||
0.1
|
||
],
|
||
[
|
||
1.3,
|
||
0.5
|
||
],
|
||
[
|
||
1.3005,
|
||
0.9
|
||
],
|
||
[
|
||
1.301,
|
||
1.0
|
||
]
|
||
],
|
||
"cdf": [
|
||
0.0,
|
||
0.0,
|
||
0.2999999999995559,
|
||
0.5,
|
||
0.66,
|
||
0.9,
|
||
0.9500000000000222,
|
||
1.0
|
||
],
|
||
"density": [
|
||
0.0,
|
||
1000.0000000001102,
|
||
4000.0000000004407,
|
||
800.0000000000881,
|
||
800.0000000000881,
|
||
200.00000000002203,
|
||
200.00000000002203,
|
||
0.0
|
||
],
|
||
"mean": 1.30014
|
||
},
|
||
"note": "方法第五部分的窄范围写法(不对称):低端尾巴 1.2998–1.2999,高端尾巴 1.3005–1.3010。折点上密度取右边那段。"
|
||
},
|
||
{
|
||
"name": "minimize_to_improvement",
|
||
"section": "6.1;约定 5",
|
||
"params": {
|
||
"direction": "minimize"
|
||
},
|
||
"input": {
|
||
"b": 0.4,
|
||
"range": {
|
||
"q1": 0.3,
|
||
"q5": 0.35,
|
||
"q9": 0.45
|
||
},
|
||
"y": [
|
||
-0.2,
|
||
-0.05,
|
||
0.0,
|
||
0.05,
|
||
0.08,
|
||
0.1,
|
||
0.25
|
||
]
|
||
},
|
||
"expected": {
|
||
"Yrange": {
|
||
"q1": -0.04999999999999999,
|
||
"q5": 0.050000000000000044,
|
||
"q9": 0.10000000000000003
|
||
},
|
||
"Ypoints": [
|
||
[
|
||
-0.15000000000000002,
|
||
0.0
|
||
],
|
||
[
|
||
-0.04999999999999999,
|
||
0.1
|
||
],
|
||
[
|
||
0.050000000000000044,
|
||
0.5
|
||
],
|
||
[
|
||
0.10000000000000003,
|
||
0.9
|
||
],
|
||
[
|
||
0.15000000000000002,
|
||
1.0
|
||
]
|
||
],
|
||
"Ycdf": [
|
||
0.0,
|
||
0.09999999999999999,
|
||
0.2999999999999999,
|
||
0.49999999999999983,
|
||
0.7399999999999997,
|
||
0.8999999999999998,
|
||
1.0
|
||
]
|
||
},
|
||
"note": "Y = b − 分数,一成九成对调:Y 的三个数 = (b−q9, b−q5, b−q1) = (−0.05, 0.05, 0.10);低端尾巴宽 = 原 q9−q5 = 0.10,高端尾巴宽 = 原 q5−q1 = 0.05。"
|
||
},
|
||
{
|
||
"name": "forward_merge_r1_real",
|
||
"section": "6.3、6.1;约定 6–8",
|
||
"params": {
|
||
"lambda": 0.1,
|
||
"direction": "maximize",
|
||
"eps": 0.01
|
||
},
|
||
"input": {
|
||
"b": 0.9597642169962064,
|
||
"candidates": {
|
||
"r1-v1-c1": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 2.0,
|
||
"q5": 2.45,
|
||
"q9": 2.6
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 2.2,
|
||
"q5": 2.5,
|
||
"q9": 2.62
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-3",
|
||
"range": {
|
||
"q1": 2.2,
|
||
"q5": 2.5,
|
||
"q9": 2.63
|
||
}
|
||
}
|
||
],
|
||
"r1-v1-c2": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 1.85,
|
||
"q5": 2.35,
|
||
"q9": 2.6
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 1.6,
|
||
"q5": 2.35,
|
||
"q9": 2.6
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-3",
|
||
"range": {
|
||
"q1": 1.8,
|
||
"q5": 2.4,
|
||
"q9": 2.62
|
||
}
|
||
}
|
||
],
|
||
"r1-v1-c3": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 2.3,
|
||
"q5": 2.5,
|
||
"q9": 2.62
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 2.42,
|
||
"q5": 2.52,
|
||
"q9": 2.6
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-3",
|
||
"range": {
|
||
"q1": 2.1,
|
||
"q5": 2.5,
|
||
"q9": 2.6
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"Yprobe": [
|
||
-1.0,
|
||
-0.01,
|
||
0.0,
|
||
0.5,
|
||
1.0,
|
||
1.4,
|
||
1.5,
|
||
1.6,
|
||
1.7,
|
||
2.0
|
||
]
|
||
},
|
||
"expected": {
|
||
"reserveY": [
|
||
-1.1097642169962063,
|
||
2.890235783003794
|
||
],
|
||
"reserveRaw": [
|
||
-0.1499999999999999,
|
||
3.85
|
||
],
|
||
"candidates": {
|
||
"r1-v1-c1": {
|
||
"Ycdf": [
|
||
0.002744105424905158,
|
||
0.02749410542490516,
|
||
0.027744105424905158,
|
||
0.04024410542490516,
|
||
0.09201456329056014,
|
||
0.3764926035541918,
|
||
0.4908668526188352,
|
||
0.7204866655530365,
|
||
0.909006668533861,
|
||
0.9777441054249052
|
||
],
|
||
"Yquantiles": {
|
||
"q1": 1.027378640146651,
|
||
"q5": 1.505620398388409,
|
||
"q9": 1.6872385077994339
|
||
},
|
||
"rawQuantiles": {
|
||
"q1": 1.9871428571428573,
|
||
"q5": 2.4653846153846155,
|
||
"q9": 2.6470027247956405
|
||
},
|
||
"Ymean": 1.3919857830037936
|
||
},
|
||
"r1-v1-c2": {
|
||
"Ycdf": [
|
||
0.002744105424905158,
|
||
0.03148467410475341,
|
||
0.03213467410475341,
|
||
0.0842087379743361,
|
||
0.258602635622629,
|
||
0.5140705971405044,
|
||
0.6532164175573758,
|
||
0.8062618721028304,
|
||
0.9000099107307501,
|
||
0.9777441054249052
|
||
],
|
||
"Yquantiles": {
|
||
"q1": 0.5902357830037936,
|
||
"q5": 1.3862357830037937,
|
||
"q9": 1.6999753073526045
|
||
},
|
||
"rawQuantiles": {
|
||
"q1": 1.55,
|
||
"q5": 2.346,
|
||
"q9": 2.659739524348811
|
||
},
|
||
"Ymean": 1.2365857830037936
|
||
},
|
||
"r1-v1-c3": {
|
||
"Ycdf": [
|
||
0.002744105424905158,
|
||
0.02749410542490516,
|
||
0.027744105424905158,
|
||
0.04024410542490516,
|
||
0.07222642169962064,
|
||
0.24846116582035283,
|
||
0.40674896111693865,
|
||
0.708871708310869,
|
||
0.9305260061463959,
|
||
0.9777441054249052
|
||
],
|
||
"Yquantiles": {
|
||
"q1": 1.169183151424846,
|
||
"q5": 1.5424985567264213,
|
||
"q9": 1.6678673619511621
|
||
},
|
||
"rawQuantiles": {
|
||
"q1": 2.1289473684210525,
|
||
"q5": 2.5022627737226277,
|
||
"q9": 2.6276315789473683
|
||
},
|
||
"Ymean": 1.4392357830037936
|
||
}
|
||
}
|
||
},
|
||
"note": "真实第 1 轮三候选×三人(每人一份,等权)。开放预留取三候选九条折线(含尾巴)的最低首点和最高末点。合并分位数在改进量上用广义逆 inf{y: P(Y≤y) ≥ p} 求,再加回 b。"
|
||
},
|
||
{
|
||
"name": "forward_merge_minimize",
|
||
"section": "6.3、6.1;约定 6–8",
|
||
"params": {
|
||
"lambda": 0.1,
|
||
"direction": "minimize",
|
||
"eps": 0.01
|
||
},
|
||
"input": {
|
||
"b": 0.4,
|
||
"candidates": {
|
||
"c1": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 0.36,
|
||
"q5": 0.38,
|
||
"q9": 0.4
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 0.35,
|
||
"q5": 0.37,
|
||
"q9": 0.39
|
||
}
|
||
}
|
||
],
|
||
"c2": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 0.33,
|
||
"q5": 0.36,
|
||
"q9": 0.41
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 0.37,
|
||
"q5": 0.39,
|
||
"q9": 0.42
|
||
}
|
||
}
|
||
],
|
||
"c3": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 0.41,
|
||
"q5": 0.43,
|
||
"q9": 0.46
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 0.4,
|
||
"q5": 0.42,
|
||
"q9": 0.45
|
||
}
|
||
}
|
||
],
|
||
"c4": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 0.37,
|
||
"q5": 0.39,
|
||
"q9": 0.4
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 0.38,
|
||
"q5": 0.395,
|
||
"q9": 0.41
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"Yprobe": [
|
||
-0.1,
|
||
-0.02,
|
||
-0.01,
|
||
0.0,
|
||
0.01,
|
||
0.02,
|
||
0.05
|
||
]
|
||
},
|
||
"expected": {
|
||
"reserveY": [
|
||
-0.18500000000000003,
|
||
0.19499999999999998
|
||
],
|
||
"reserveRaw": [
|
||
0.20500000000000004,
|
||
0.5850000000000001
|
||
],
|
||
"candidates": {
|
||
"c1": {
|
||
"Ycdf": [
|
||
0.022368421052631586,
|
||
0.04342105263157899,
|
||
0.06855263157894742,
|
||
0.11618421052631579,
|
||
0.2313157894736841,
|
||
0.41394736842105234,
|
||
0.8943421052631574
|
||
],
|
||
"Yquantiles": {
|
||
"q1": -0.0033977900552486233,
|
||
"q5": 0.024711815561959675,
|
||
"q9": 0.05118784530386745
|
||
},
|
||
"rawQuantiles": {
|
||
"q1": 0.3488121546961326,
|
||
"q5": 0.37528818443804035,
|
||
"q9": 0.4033977900552487
|
||
},
|
||
"Ymean": 0.023000000000000017
|
||
},
|
||
"c2": {
|
||
"Ycdf": [
|
||
0.022368421052631586,
|
||
0.12442105263157885,
|
||
0.19605263157894717,
|
||
0.29468421052631555,
|
||
0.393315789473684,
|
||
0.5219473684210524,
|
||
0.7968421052631577
|
||
],
|
||
"Yquantiles": {
|
||
"q1": -0.02916996047430826,
|
||
"q5": 0.01829378068739773,
|
||
"q9": 0.06647058823529413
|
||
},
|
||
"rawQuantiles": {
|
||
"q1": 0.3335294117647059,
|
||
"q5": 0.3817062193126023,
|
||
"q9": 0.4291699604743083
|
||
},
|
||
"Ymean": 0.01827500000000002
|
||
},
|
||
"c3": {
|
||
"Ycdf": [
|
||
0.022368421052631586,
|
||
0.5834210526315784,
|
||
0.7660526315789468,
|
||
0.8811842105263157,
|
||
0.9288157894736842,
|
||
0.9539473684210527,
|
||
0.9618421052631579
|
||
],
|
||
"Yquantiles": {
|
||
"q1": -0.06241935483870968,
|
||
"q5": -0.025465517241379278,
|
||
"q9": 0.003950276243093946
|
||
},
|
||
"rawQuantiles": {
|
||
"q1": 0.39604972375690606,
|
||
"q5": 0.4254655172413793,
|
||
"q9": 0.4624193548387097
|
||
},
|
||
"Ymean": -0.025149999999999985
|
||
},
|
||
"c4": {
|
||
"Ycdf": [
|
||
0.022368421052631586,
|
||
0.05842105263157873,
|
||
0.09105263157894727,
|
||
0.25868421052631557,
|
||
0.561315789473684,
|
||
0.7739473684210523,
|
||
0.9618421052631578
|
||
],
|
||
"Yquantiles": {
|
||
"q1": -0.009466248037676579,
|
||
"q5": 0.007973913043478267,
|
||
"q9": 0.030620525059665896
|
||
},
|
||
"rawQuantiles": {
|
||
"q1": 0.36937947494033413,
|
||
"q5": 0.39202608695652175,
|
||
"q9": 0.4094662480376766
|
||
},
|
||
"Ymean": 0.008825000000000013
|
||
}
|
||
}
|
||
},
|
||
"note": "越小越好:逐人换成 Y = b − 分数再合并;原值分位数 = b − Y 的分位数,一成九成对调。"
|
||
},
|
||
{
|
||
"name": "ablation_cell_merge_r1_p1",
|
||
"section": "6.3、6.7 成分与权重;约定 6–8、24",
|
||
"params": {
|
||
"lambda": 0.1
|
||
},
|
||
"input": {
|
||
"explanations": [
|
||
{
|
||
"id": "r1-e1-1",
|
||
"author": "researcher-1",
|
||
"range": {
|
||
"q1": 1.2,
|
||
"q5": 2,
|
||
"q9": 2.44
|
||
}
|
||
},
|
||
{
|
||
"id": "r1-e1-2",
|
||
"author": "researcher-1",
|
||
"range": {
|
||
"q1": 1.22,
|
||
"q5": 1.4,
|
||
"q9": 1.52
|
||
}
|
||
},
|
||
{
|
||
"id": "r1-e2-1",
|
||
"author": "researcher-2",
|
||
"range": {
|
||
"q1": 1.05,
|
||
"q5": 1.35,
|
||
"q9": 1.95
|
||
}
|
||
},
|
||
{
|
||
"id": "r1-e2-2",
|
||
"author": "researcher-2",
|
||
"range": {
|
||
"q1": 0.95,
|
||
"q5": 1.3,
|
||
"q9": 2.1
|
||
}
|
||
},
|
||
{
|
||
"id": "r1-e3-1",
|
||
"author": "researcher-3",
|
||
"range": {
|
||
"q1": 1.15,
|
||
"q5": 1.36,
|
||
"q9": 1.55
|
||
}
|
||
},
|
||
{
|
||
"id": "r1-e3-2",
|
||
"author": "researcher-3",
|
||
"range": {
|
||
"q1": 1.2,
|
||
"q5": 1.42,
|
||
"q9": 2.46
|
||
}
|
||
}
|
||
],
|
||
"x": [
|
||
0.5,
|
||
1.0,
|
||
1.3,
|
||
1.5,
|
||
2.0,
|
||
2.5,
|
||
3.0
|
||
]
|
||
},
|
||
"expected": {
|
||
"reserve": [
|
||
-1.1500000000000001,
|
||
5.05
|
||
],
|
||
"weights": [
|
||
0.15,
|
||
0.15,
|
||
0.15,
|
||
0.15,
|
||
0.15,
|
||
0.15,
|
||
0.1
|
||
],
|
||
"cdf": [
|
||
0.028487903225806455,
|
||
0.08764819857561795,
|
||
0.34381266582879494,
|
||
0.584067846415045,
|
||
0.7980179900744416,
|
||
0.9227433453643131,
|
||
0.9597239454094293
|
||
],
|
||
"quantiles": {
|
||
"q1": 1.031197878433162,
|
||
"q5": 1.4262310909924365,
|
||
"q9": 2.3794554469188443
|
||
}
|
||
},
|
||
"note": "真实第 1 轮消融 p1 格(关掉 p1)。三人各两条解释:每条 0.9/3/2 = 0.15,预留 0.1(权重最后一项)。开放预留只看这一格六条折线。分位数在原值上求。"
|
||
},
|
||
{
|
||
"name": "quantile_flat_left_end",
|
||
"section": "约定 8",
|
||
"params": {},
|
||
"input": {
|
||
"mixture": [
|
||
{
|
||
"weight": 0.5,
|
||
"range": {
|
||
"q1": 0.99,
|
||
"q5": 1.0,
|
||
"q9": 1.01
|
||
}
|
||
},
|
||
{
|
||
"weight": 0.5,
|
||
"range": {
|
||
"q1": 1.99,
|
||
"q5": 2.0,
|
||
"q9": 2.01
|
||
}
|
||
}
|
||
],
|
||
"p": [
|
||
0.1,
|
||
0.5,
|
||
0.9
|
||
]
|
||
},
|
||
"expected": {
|
||
"quantiles": [
|
||
0.9924999999999999,
|
||
1.02,
|
||
2.0075
|
||
]
|
||
},
|
||
"note": "两条窄折线各占一半,中间 [1.02, 1.98] 把握走平在 0.5:一半取平段左端 1.02;一成落在第一条的[0.99, 1.0] 段里(第一条自己的 0.2 分位),九成落在第二条的 [2.0, 2.01] 段里。"
|
||
},
|
||
{
|
||
"name": "pool_r1_real",
|
||
"section": "6.4 入池;约定 9",
|
||
"params": {
|
||
"eps": 0.01,
|
||
"lambda": 0.1,
|
||
"direction": "maximize"
|
||
},
|
||
"input": {
|
||
"b": 0.9597642169962064,
|
||
"candidates": {
|
||
"r1-v1-c1": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 2.0,
|
||
"q5": 2.45,
|
||
"q9": 2.6
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 2.2,
|
||
"q5": 2.5,
|
||
"q9": 2.62
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-3",
|
||
"range": {
|
||
"q1": 2.2,
|
||
"q5": 2.5,
|
||
"q9": 2.63
|
||
}
|
||
}
|
||
],
|
||
"r1-v1-c2": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 1.85,
|
||
"q5": 2.35,
|
||
"q9": 2.6
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 1.6,
|
||
"q5": 2.35,
|
||
"q9": 2.6
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-3",
|
||
"range": {
|
||
"q1": 1.8,
|
||
"q5": 2.4,
|
||
"q9": 2.62
|
||
}
|
||
}
|
||
],
|
||
"r1-v1-c3": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 2.3,
|
||
"q5": 2.5,
|
||
"q9": 2.62
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 2.42,
|
||
"q5": 2.52,
|
||
"q9": 2.6
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-3",
|
||
"range": {
|
||
"q1": 2.1,
|
||
"q5": 2.5,
|
||
"q9": 2.6
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"expected": {
|
||
"r1-v1-c1": {
|
||
"probBelowMinusEps": 0.02749410542490516,
|
||
"inPool": true
|
||
},
|
||
"r1-v1-c2": {
|
||
"probBelowMinusEps": 0.03148467410475341,
|
||
"inPool": true
|
||
},
|
||
"r1-v1-c3": {
|
||
"probBelowMinusEps": 0.02749410542490516,
|
||
"inPool": true
|
||
}
|
||
},
|
||
"note": "真实第 1 轮:三个候选都远高于 b,都入池。"
|
||
},
|
||
{
|
||
"name": "pool_minimize",
|
||
"section": "6.4 入池;约定 9",
|
||
"params": {
|
||
"eps": 0.01,
|
||
"lambda": 0.1,
|
||
"direction": "minimize"
|
||
},
|
||
"input": {
|
||
"b": 0.4,
|
||
"candidates": {
|
||
"c1": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 0.36,
|
||
"q5": 0.38,
|
||
"q9": 0.4
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 0.35,
|
||
"q5": 0.37,
|
||
"q9": 0.39
|
||
}
|
||
}
|
||
],
|
||
"c2": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 0.33,
|
||
"q5": 0.36,
|
||
"q9": 0.41
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 0.37,
|
||
"q5": 0.39,
|
||
"q9": 0.42
|
||
}
|
||
}
|
||
],
|
||
"c3": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 0.41,
|
||
"q5": 0.43,
|
||
"q9": 0.46
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 0.4,
|
||
"q5": 0.42,
|
||
"q9": 0.45
|
||
}
|
||
}
|
||
],
|
||
"c4": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 0.37,
|
||
"q5": 0.39,
|
||
"q9": 0.4
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 0.38,
|
||
"q5": 0.395,
|
||
"q9": 0.41
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"expected": {
|
||
"c1": {
|
||
"probBelowMinusEps": 0.06855263157894742,
|
||
"inPool": true
|
||
},
|
||
"c2": {
|
||
"probBelowMinusEps": 0.19605263157894717,
|
||
"inPool": true
|
||
},
|
||
"c3": {
|
||
"probBelowMinusEps": 0.7660526315789468,
|
||
"inPool": false
|
||
},
|
||
"c4": {
|
||
"probBelowMinusEps": 0.09105263157894727,
|
||
"inPool": true
|
||
}
|
||
},
|
||
"note": "越小越好:P(Y < −ε) = P(分数 > b+ε)。c3 的大部分把握在 0.41 以上,不入池。"
|
||
},
|
||
{
|
||
"name": "pool_exactly_half",
|
||
"section": "6.4 入池;约定 9",
|
||
"params": {
|
||
"eps": 0.25,
|
||
"lambda": 0.1,
|
||
"direction": "maximize"
|
||
},
|
||
"input": {
|
||
"b": 1.0,
|
||
"cases": [
|
||
{
|
||
"candidates": {
|
||
"c1": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 0.5,
|
||
"q5": 0.75,
|
||
"q9": 1.0
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"candidates": {
|
||
"c1": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 0.5,
|
||
"q5": 0.7509765625,
|
||
"q9": 1.0
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"expected": {
|
||
"cases": [
|
||
{
|
||
"probBelowMinusEps": 0.5,
|
||
"inPool": false
|
||
},
|
||
{
|
||
"probBelowMinusEps": 0.49864804991488326,
|
||
"inPool": true
|
||
}
|
||
]
|
||
},
|
||
"note": "第一例:Y 三个数 (−0.5,−0.25,0),预留 [−1.25,0.75],都以 −ε=−0.25 为中点,P(Y<−ε) = 0.9×0.5+0.1×0.5 = 0.5(浮点下也正好 0.5),不严格小于一半,不入池。第二例把 q5 往上挪 2⁻¹⁰,把握略小于 0.5,入池。ε 取 0.25 是为了全部是二进制精确数。"
|
||
},
|
||
{
|
||
"name": "V_method_example_X_Y",
|
||
"section": "6.4 批内最好期望",
|
||
"params": {},
|
||
"input": {
|
||
"Ymixtures": {
|
||
"X": [
|
||
{
|
||
"weight": 0.5,
|
||
"range": {
|
||
"q1": -0.001,
|
||
"q5": 0.0,
|
||
"q9": 0.001
|
||
}
|
||
},
|
||
{
|
||
"weight": 0.5,
|
||
"range": {
|
||
"q1": 0.019,
|
||
"q5": 0.02,
|
||
"q9": 0.021
|
||
}
|
||
}
|
||
],
|
||
"Y": [
|
||
{
|
||
"weight": 1,
|
||
"range": {
|
||
"q1": 0.009,
|
||
"q5": 0.01,
|
||
"q9": 0.011
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"expected": {
|
||
"V": {
|
||
"X": 0.010175,
|
||
"Y": 0.01,
|
||
"X,Y": 0.015
|
||
}
|
||
},
|
||
"note": "方法示例换成窄范围(三个数严格递增):X 一半在 0 附近、一半在 0.02 附近;Y 在 0.01 附近。输入是改进量上的混合(每个成分一个三个数)。V(X) ≈ 0.010175(0 附近那一半有一点低于 0、被截成 0),V(Y) ≈ 0.01,V(X,Y) ≈ 0.015。"
|
||
},
|
||
{
|
||
"name": "batch_r1_real_k2",
|
||
"section": "6.4 选批、分数尺读数;约定 10–14",
|
||
"params": {
|
||
"eps": 0.01,
|
||
"lambda": 0.1,
|
||
"direction": "maximize",
|
||
"batchCap": 2
|
||
},
|
||
"input": {
|
||
"b": 0.9597642169962064,
|
||
"balance": 100,
|
||
"candidates": {
|
||
"r1-v1-c1": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 2.0,
|
||
"q5": 2.45,
|
||
"q9": 2.6
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 2.2,
|
||
"q5": 2.5,
|
||
"q9": 2.62
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-3",
|
||
"range": {
|
||
"q1": 2.2,
|
||
"q5": 2.5,
|
||
"q9": 2.63
|
||
}
|
||
}
|
||
],
|
||
"r1-v1-c2": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 1.85,
|
||
"q5": 2.35,
|
||
"q9": 2.6
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 1.6,
|
||
"q5": 2.35,
|
||
"q9": 2.6
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-3",
|
||
"range": {
|
||
"q1": 1.8,
|
||
"q5": 2.4,
|
||
"q9": 2.62
|
||
}
|
||
}
|
||
],
|
||
"r1-v1-c3": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 2.3,
|
||
"q5": 2.5,
|
||
"q9": 2.62
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 2.42,
|
||
"q5": 2.52,
|
||
"q9": 2.6
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-3",
|
||
"range": {
|
||
"q1": 2.1,
|
||
"q5": 2.5,
|
||
"q9": 2.6
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"expected": {
|
||
"pool": [
|
||
"r1-v1-c1",
|
||
"r1-v1-c2",
|
||
"r1-v1-c3"
|
||
],
|
||
"k": 2,
|
||
"combos": [
|
||
{
|
||
"combo": [
|
||
"r1-v1-c1",
|
||
"r1-v1-c2"
|
||
],
|
||
"V": 1.563610390779633
|
||
},
|
||
{
|
||
"combo": [
|
||
"r1-v1-c1",
|
||
"r1-v1-c3"
|
||
],
|
||
"V": 1.606671885433043
|
||
},
|
||
{
|
||
"combo": [
|
||
"r1-v1-c2",
|
||
"r1-v1-c3"
|
||
],
|
||
"V": 1.5843489675642095
|
||
}
|
||
],
|
||
"selected": [
|
||
"r1-v1-c1",
|
||
"r1-v1-c3"
|
||
],
|
||
"selectedV": 1.606671885433043,
|
||
"poolAllV": 1.6614292532574937,
|
||
"rulerReading": 0.0547573678244507
|
||
},
|
||
"note": "真实第 1 轮,每批上限 2:三选二,列出三个组合的 V。分数尺读数 = E[max(0, max_池 Y)] − V(S*)。"
|
||
},
|
||
{
|
||
"name": "batch_minimize_out_of_pool",
|
||
"section": "6.4 选批、分数尺读数;约定 10–14",
|
||
"params": {
|
||
"eps": 0.01,
|
||
"lambda": 0.1,
|
||
"direction": "minimize",
|
||
"batchCap": 2
|
||
},
|
||
"input": {
|
||
"b": 0.4,
|
||
"balance": 100,
|
||
"candidates": {
|
||
"c1": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 0.36,
|
||
"q5": 0.38,
|
||
"q9": 0.4
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 0.35,
|
||
"q5": 0.37,
|
||
"q9": 0.39
|
||
}
|
||
}
|
||
],
|
||
"c2": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 0.33,
|
||
"q5": 0.36,
|
||
"q9": 0.41
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 0.37,
|
||
"q5": 0.39,
|
||
"q9": 0.42
|
||
}
|
||
}
|
||
],
|
||
"c3": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 0.41,
|
||
"q5": 0.43,
|
||
"q9": 0.46
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 0.4,
|
||
"q5": 0.42,
|
||
"q9": 0.45
|
||
}
|
||
}
|
||
],
|
||
"c4": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 0.37,
|
||
"q5": 0.39,
|
||
"q9": 0.4
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 0.38,
|
||
"q5": 0.395,
|
||
"q9": 0.41
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"expected": {
|
||
"pool": [
|
||
"c1",
|
||
"c2",
|
||
"c4"
|
||
],
|
||
"k": 2,
|
||
"combos": [
|
||
{
|
||
"combo": [
|
||
"c1",
|
||
"c2"
|
||
],
|
||
"V": 0.042511208189058194
|
||
},
|
||
{
|
||
"combo": [
|
||
"c1",
|
||
"c4"
|
||
],
|
||
"V": 0.03455455687326872
|
||
},
|
||
{
|
||
"combo": [
|
||
"c2",
|
||
"c4"
|
||
],
|
||
"V": 0.03528487545879503
|
||
}
|
||
],
|
||
"selected": [
|
||
"c1",
|
||
"c2"
|
||
],
|
||
"selectedV": 0.042511208189058194,
|
||
"poolAllV": 0.04700708419008786,
|
||
"rulerReading": 0.004495876001029669
|
||
},
|
||
"note": "越小越好,c3 在池外:只在池内 {c1,c2,c4} 里选二;分数尺读数只按池内候选算(约定 13),池外的 c3 不进。"
|
||
},
|
||
{
|
||
"name": "batch_tie_by_id",
|
||
"section": "6.4 选批、分数尺读数;约定 10–14",
|
||
"params": {
|
||
"eps": 0.01,
|
||
"lambda": 0.1,
|
||
"direction": "maximize",
|
||
"batchCap": 1
|
||
},
|
||
"input": {
|
||
"b": 2.45,
|
||
"balance": 100,
|
||
"candidates": {
|
||
"c2": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 2.4,
|
||
"q5": 2.5,
|
||
"q9": 2.6
|
||
}
|
||
}
|
||
],
|
||
"c10": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 2.4,
|
||
"q5": 2.5,
|
||
"q9": 2.6
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"expected": {
|
||
"pool": [
|
||
"c2",
|
||
"c10"
|
||
],
|
||
"k": 1,
|
||
"combos": [
|
||
{
|
||
"combo": [
|
||
"c2"
|
||
],
|
||
"V": 0.07115624999999991
|
||
},
|
||
{
|
||
"combo": [
|
||
"c10"
|
||
],
|
||
"V": 0.07115624999999991
|
||
}
|
||
],
|
||
"selected": [
|
||
"c2"
|
||
],
|
||
"selectedV": 0.07115624999999991,
|
||
"poolAllV": 0.11286726562499991,
|
||
"rulerReading": 0.041711015624999986
|
||
},
|
||
"note": "两个候选的范围完全相同,V 完全相等;按编号的自然序,c2 排在 c10 前面,选 c2。"
|
||
},
|
||
{
|
||
"name": "batch_uniform_random_minimize",
|
||
"section": "第十一部分 均匀随机;约定 12–14",
|
||
"params": {
|
||
"eps": 0.01,
|
||
"lambda": 0.1,
|
||
"direction": "minimize",
|
||
"batchCap": 2
|
||
},
|
||
"input": {
|
||
"b": 0.4,
|
||
"balance": 100,
|
||
"seed": "b05ff00c97f5436a04ba877196edf1e1dc5a25ede85acd190ec55eb4647a45e3",
|
||
"seedFrom": {
|
||
"studyId": "uniform-batch",
|
||
"round": 1,
|
||
"version": 1
|
||
},
|
||
"candidates": {
|
||
"c1": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 0.36,
|
||
"q5": 0.38,
|
||
"q9": 0.4
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 0.35,
|
||
"q5": 0.37,
|
||
"q9": 0.39
|
||
}
|
||
}
|
||
],
|
||
"c2": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 0.33,
|
||
"q5": 0.36,
|
||
"q9": 0.41
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 0.37,
|
||
"q5": 0.39,
|
||
"q9": 0.42
|
||
}
|
||
}
|
||
],
|
||
"c3": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 0.41,
|
||
"q5": 0.43,
|
||
"q9": 0.46
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 0.4,
|
||
"q5": 0.42,
|
||
"q9": 0.45
|
||
}
|
||
}
|
||
],
|
||
"c4": [
|
||
{
|
||
"researcher": "researcher-1",
|
||
"range": {
|
||
"q1": 0.37,
|
||
"q5": 0.39,
|
||
"q9": 0.4
|
||
}
|
||
},
|
||
{
|
||
"researcher": "researcher-2",
|
||
"range": {
|
||
"q1": 0.38,
|
||
"q5": 0.395,
|
||
"q9": 0.41
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"expected": {
|
||
"pool": [
|
||
"c1",
|
||
"c2",
|
||
"c4"
|
||
],
|
||
"k": 2,
|
||
"selected": [
|
||
"c1",
|
||
"c3"
|
||
],
|
||
"selectedV": 0.03193200753116345,
|
||
"poolAllV": 0.04700708419008786,
|
||
"rulerReading": 0.015075076658924408
|
||
},
|
||
"note": "越小越好四候选,c3 在池外。均匀随机从全部四个候选里抽两个(编号按 JS 字符串序排好再做部分 Fisher–Yates),这个种子抽中了池外的 c3。selectedV = V(S*);分数尺读数 = V(候选池 c1,c2,c4) − V(S*)。不列组合。"
|
||
},
|
||
{
|
||
"name": "adoption_line_cases",
|
||
"section": "6.5;约定 15",
|
||
"params": {
|
||
"eps": 0.01
|
||
},
|
||
"input": {
|
||
"cases": [
|
||
{
|
||
"B": 2.6,
|
||
"knownBest": null,
|
||
"direction": "maximize",
|
||
"note": "没有已知最好:ε"
|
||
},
|
||
{
|
||
"B": 2.6,
|
||
"knownBest": 2.635983,
|
||
"direction": "maximize",
|
||
"note": "正常:min(0.01, 0.035983/4=0.00899575)"
|
||
},
|
||
{
|
||
"B": 2.6359,
|
||
"knownBest": 2.635983,
|
||
"direction": "maximize",
|
||
"note": "下限:(K*−B)/4 < ε/100,取 ε/100 = 0.0001"
|
||
},
|
||
{
|
||
"B": 2.64,
|
||
"knownBest": 2.635983,
|
||
"direction": "maximize",
|
||
"note": "B 超过 K*:取 ε/100"
|
||
},
|
||
{
|
||
"B": 2.5,
|
||
"knownBest": 2.635983,
|
||
"direction": "maximize",
|
||
"note": "差距大:取上限 ε"
|
||
},
|
||
{
|
||
"B": 0.4,
|
||
"knownBest": 0.38,
|
||
"direction": "minimize",
|
||
"note": "越小越好:(B−K*)/4 = 0.005"
|
||
},
|
||
{
|
||
"B": 0.37,
|
||
"knownBest": 0.38,
|
||
"direction": "minimize",
|
||
"note": "越小越好、B 已比 K* 好:ε/100"
|
||
}
|
||
]
|
||
},
|
||
"expected": {
|
||
"lines": [
|
||
0.01,
|
||
0.008995749999999969,
|
||
0.0001,
|
||
0.0001,
|
||
0.01,
|
||
0.0050000000000000044,
|
||
0.0001
|
||
]
|
||
},
|
||
"note": "逐例对应 input.cases。"
|
||
},
|
||
{
|
||
"name": "adoption_decision_cases",
|
||
"section": "6.5;约定 16",
|
||
"params": {
|
||
"eps": 0.01
|
||
},
|
||
"input": {
|
||
"cases": [
|
||
{
|
||
"B": 2.6,
|
||
"knownBest": 2.635983,
|
||
"direction": "maximize",
|
||
"results": {
|
||
"c1": 2.605,
|
||
"c2": 2.6185,
|
||
"c3": null
|
||
}
|
||
},
|
||
{
|
||
"B": 2.6,
|
||
"knownBest": null,
|
||
"direction": "maximize",
|
||
"results": {
|
||
"c1": 2.61,
|
||
"c2": 2.605
|
||
}
|
||
},
|
||
{
|
||
"B": 2.6,
|
||
"knownBest": null,
|
||
"direction": "maximize",
|
||
"results": {
|
||
"c1": 2.6125,
|
||
"c2": 2.6125
|
||
}
|
||
},
|
||
{
|
||
"B": 0.4,
|
||
"knownBest": null,
|
||
"direction": "minimize",
|
||
"results": {
|
||
"c1": 0.385,
|
||
"c2": 0.395
|
||
}
|
||
}
|
||
]
|
||
},
|
||
"expected": {
|
||
"cases": [
|
||
{
|
||
"line": 0.008995749999999969,
|
||
"best": "c2",
|
||
"gain": 0.01849999999999996,
|
||
"adopt": true
|
||
},
|
||
{
|
||
"line": 0.01,
|
||
"best": "c1",
|
||
"gain": 0.009999999999999787,
|
||
"adopt": false
|
||
},
|
||
{
|
||
"line": 0.01,
|
||
"best": "c1",
|
||
"gain": 0.012499999999999734,
|
||
"adopt": true
|
||
},
|
||
{
|
||
"line": 0.01,
|
||
"best": "c1",
|
||
"gain": 0.015000000000000013,
|
||
"adopt": true
|
||
}
|
||
]
|
||
},
|
||
"note": "改进量 > 采纳线(严格)才采纳;同分取编号小的。第二例是'正好高 ε':浮点输入 2.61、2.60 的精确差 = 0.009999999999999787(浮点减法 2.61-2.6 也是这个数),不大于 0.01,不采纳。"
|
||
}
|
||
]
|
||
}
|