跳转到主要内容
FlexiLayout 中的每个元素都有一个重要的参数 MaxHypothesesCount。用户可以使用该参数限制程序在查找后续元素时可采用的假设数量。默认情况下,该参数对简单元素设为 5,对 Group 元素设为 1。这意味着,如果程序为某个元素找到 15 个假设,它将选出最优的 5 个,其余 10 条假设链将保持不完整。通常,Group 元素比简单元素更易被可靠检测,因此 Group 元素的最佳假设往往就是正确的结果。 在大多数情况下,程序会有多条不完整的假设链,因此存在多种可能的搜索方向。程序使用经典的“宽搜索”算法来寻找最佳假设。该算法指的是程序始终优先扩展当前质量最高的那条链,而不考虑其长度。 假设我们有一个包含 30 个元素的 FlexiLayout,并生成了两条假设链:一条包含 29 个元素,估计质量为 0.89;另一条包含 2 个元素,估计质量为 0.92。程序将优先尝试完成质量更高的那条较短链,直到其所有扩展的质量都不如第一条链为止。 对于 Group 元素,程序使用所谓的质量优化。当程序为某个 Group 元素找到理想的完整假设链(即该链的质量为 1)时,将忽略所有其他方案。每个元素的假设总数上限为 10,000。 为某个元素创建的假设数量可能会超过 MaxHypothesesCount 中设置的值。在这种情况下,只有用户定义数量的最佳假设会进入假设树。