Cada elemento de FlexiLayout tiene un parámetro importante llamado MaxHypothesesCount. El usuario puede usar este parámetro para limitar la cantidad de hipótesis que el programa puede considerar al buscar el elemento siguiente. De forma predeterminada, este parámetro se establece en 5 para los elementos simples y en 1 para los elementos Group. Esto significa que, si el programa encuentra 15 hipótesis para un elemento dado, seleccionará las cinco mejores y dejará las otras 10 cadenas de hipótesis incompletas. Los elementos Group, por lo general, se detectan con mayor fiabilidad que los elementos simples. Por lo tanto, la mejor hipótesis para un elemento Group suele ser la correcta.
En la mayoría de los casos, el programa tiene varias cadenas de hipótesis incompletas y, en consecuencia, varias direcciones de búsqueda posibles. El programa busca la mejor hipótesis utilizando el algoritmo clásico de “búsqueda en amplitud”. Este algoritmo implica que el programa siempre intenta completar la cadena que en ese momento presenta la mejor calidad, independientemente de su longitud.
Supongamos que tenemos un FlexiLayout que describe 30 elementos para los que se han creado dos cadenas de hipótesis: una cadena de 29 elementos con una calidad estimada de 0,89 y una cadena de 2 elementos con una calidad estimada de 0,92. El programa intentará completar la cadena más corta, que es mejor en términos de calidad, hasta que la calidad de todas sus extensiones resulte inferior a la de la primera cadena.
En el caso de un elemento Group, el programa utiliza la denominada optimización por calidad. Cuando el programa encuentra una cadena completa de hipótesis ideal para un elemento Group dado (es decir, la calidad de esta cadena es 1), ignora todas las demás variantes. El número total de hipótesis para cada elemento está limitado a 10 000.
La cantidad de hipótesis creadas para un elemento puede exceder el número establecido en MaxHypothesesCount. En ese caso, solo el número definido por el usuario de las mejores hipótesis se incorporará al árbol de hipótesis.