Pular para o conteúdo principal
Cada elemento no FlexiLayout tem um parâmetro importante chamado MaxHypothesesCount. O usuário pode usar esse parâmetro para limitar a quantidade de hipóteses que o programa pode considerar ao procurar o elemento subsequente. Por padrão, esse parâmetro é definido como 5 para elementos simples e 1 para elementos do tipo Group. Isso significa que, se o programa encontrar 15 hipóteses para um determinado elemento, ele selecionará as cinco melhores, deixando as outras 10 cadeias de hipóteses incompletas. Elementos do tipo Group, via de regra, são detectados com mais confiabilidade do que elementos simples. Portanto, a melhor hipótese para um elemento do tipo Group geralmente acaba sendo a correta. Na maioria dos casos, o programa tem várias cadeias de hipóteses incompletas e, consequentemente, várias possíveis direções de busca. O programa procura a melhor hipótese usando o algoritmo clássico de “busca em largura”. Esse algoritmo significa que o programa sempre tenta completar a cadeia que tem a melhor qualidade no momento, independentemente do seu comprimento. Suponha que tenhamos um FlexiLayout que descreve 30 elementos, para os quais foram criadas duas cadeias de hipóteses: uma cadeia de 29 elementos com qualidade estimada de 0,89 e uma cadeia de 2 elementos com qualidade estimada de 0,92. O programa tentará completar a cadeia menor, que é melhor em termos de qualidade, até o momento em que as qualidades de todas as suas extensões se tornem piores do que as da primeira cadeia. No caso de um elemento do tipo Group, o programa usa a chamada otimização por qualidade. Quando o programa encontra uma cadeia completa ideal de hipóteses para um determinado elemento do tipo Group (isto é, quando a qualidade dessa cadeia é 1), ele ignora todas as outras variantes. O número total de hipóteses para cada elemento é limitado a 10.000. A quantidade de hipóteses criadas para um elemento pode exceder o número definido em MaxHypothesesCount. Nesse caso, apenas a quantidade de melhores hipóteses definida pelo usuário entrará na árvore de hipóteses.