Chaque élément de FlexiLayout possède un paramètre important appelé MaxHypothesesCount. L’utilisateur peut s’en servir pour limiter le nombre d’hypothèses que le programme peut exploiter lors de la recherche de l’élément suivant. Par défaut, ce paramètre est fixé à 5 pour les éléments simples et à 1 pour les éléments de type Group. Autrement dit, si le programme trouve 15 hypothèses pour un élément donné, il sélectionne les cinq meilleures et laisse les 10 autres chaînes d’hypothèses incomplètes. Les éléments de type Group sont, en règle générale, détectés plus fiablement que les éléments simples. Par conséquent, la meilleure hypothèse pour un élément de type Group s’avère généralement être la bonne.
Dans la plupart des cas, le programme dispose de plusieurs chaînes d’hypothèses incomplètes et, par conséquent, de plusieurs directions de recherche possibles. Il recherche la meilleure hypothèse au moyen de l’algorithme classique de « recherche en largeur ». Cet algorithme signifie que le programme tente toujours de compléter la chaîne présentant la meilleure qualité à l’instant T, quelle que soit sa longueur.
Supposons qu’un FlexiLayout décrive 30 éléments pour lesquels deux chaînes d’hypothèses ont été créées : une chaîne de 29 éléments dont la qualité estimée est de 0,89 et une chaîne de 2 éléments dont la qualité estimée est de 0,92. Le programme tentera de compléter la plus petite chaîne, meilleure en termes de qualité, jusqu’au moment où la qualité de toutes ses extensions deviendra inférieure à celle de la première chaîne.
Dans le cas d’un élément de type Group, le programme utilise une optimisation dite de la qualité. Lorsqu’il trouve une chaîne complète d’hypothèses idéale pour un élément de type Group donné (c’est-à-dire de qualité 1), il ignore toutes les autres variantes. Le nombre total d’hypothèses pour chaque élément est limité à 10 000.
Le nombre d’hypothèses créées pour un élément peut dépasser la valeur définie dans MaxHypothesesCount. Dans ce cas, seul le nombre d’hypothèses le mieux classées défini par l’utilisateur sera intégré à l’arbre des hypothèses.