增量列表未绑定问题排查:子实验扩展时的报错分析
报错信息解读
报错提示Increment list "["numberSwimmersInPool" [ 20.0 1.0 250.0 ]]" is unbounded, reverse sign of step value,核心含义是:仿真工具认为你定义的numberSwimmersInPool增量序列无法生成有限的参数组合,误判序列为"无界"。
具体原因推测
子实验总数量超限引发解析异常
你每个numberSwimmersInPool的配置格式为[起始值, 步长, 终止值],会生成大量子实验(比如[20,1,250]会生成231个参数值)。再结合allocation的3种分配策略,总子实验数量会急剧膨胀:- 原4条配置总子实验数:(47+93+139+185)*3 = 1392个
- 新增后10条配置总子实验数:(47+93+139+185+231+277+323+369+415+461)*3 = 7620个
部分仿真工具会对同时运行的子实验总数或参数组合数设置隐藏上限,当超过阈值时,参数解析器会抛出错误提示不准确的异常(把数量/内存超限问题伪装成增量序列无界)。而你单独运行最后4条配置时,总子实验数(323+369+415+461)*3 = 4644个,刚好低于这个上限,所以能正常运行。
多序列叠加触发解析逻辑bug
仿真工具在批量处理多组numberOfLanes与numberSwimmersInPool的对应关系时,可能错误地将多个独立的增量序列合并为一个连续序列。比如工具默认numberSwimmersInPool的终止值应衔接下一个序列的起始值,但你的配置中前序序列的终止值(如50)远小于后序序列的起始值(如8),导致解析逻辑混乱,误判某条序列为无界。而最后4条配置的numberSwimmersInPool起始/终止值比例更一致,未触发该bug。
验证方向
- 将配置拆分为两组(如1-5条、6-10条)分别运行,确认是否都能正常执行;
- 增大
numberSwimmersInPool的步长(比如从1改为5),减少子实验数量后重试; - 查阅仿真工具官方文档,确认是否存在子实验数量或参数组合数的明确限制。
内容的提问来源于stack exchange,提问作者bartneck

