FlexiLayout の各要素には、MaxHypothesesCount という重要な Parameter があります。ユーザーはこの Parameter を使って、プログラムが次の要素を探索する際に利用できる仮説の数を制限できます。既定では、この値は単純要素で 5、Group 要素で 1 に設定されています。つまり、ある要素についてプログラムが 15 個の仮説を見つけた場合は、上位 5 件を選び、残り 10 件の仮説連鎖は未完成のままになります。一般に、Group 要素は単純要素より信頼性高く検出されるため、Group 要素に対する最良の仮説が正解であることが多くなります。
多くの場合、プログラムには複数の未完成の仮説連鎖があり、その結果、複数の探索方向が生じます。プログラムは古典的な「幅探索」アルゴリズムを用いて最良の仮説を探します。このアルゴリズムでは、連鎖の長さにかかわらず、その時点で品質が最も高い連鎖の完成を常に優先します。
30 個の要素を記述した FlexiLayout があり、2 本の仮説連鎖が生成されているとします。1 本は推定品質が 0.89 の 29 要素からなる連鎖、もう 1 本は推定品質が 0.92 の 2 要素からなる連鎖です。プログラムは、品質の高い短い連鎖を優先して完成させ、拡張した結果の品質がすべて最初の連鎖を下回るようになるまで続けます。
Group 要素の場合、プログラムはいわゆる品質最適化を行います。特定の Group 要素について理想的な完全仮説連鎖(すなわち、その連鎖の品質が 1)を見つけた場合、他のすべての候補は無視します。各要素に対して生成される仮説の総数は 10,000 に制限されています。
ある要素で生成される仮説の数が MaxHypothesesCount の設定値を超えることがあります。この場合、ユーザーが設定した上位件数分の仮説だけが仮説ツリーに取り込まれます。