Vai al contenuto principale
Ogni elemento in FlexiLayout ha un importante parametro chiamato MaxHypothesesCount. L’utente può usare questo parametro per limitare il numero di ipotesi che il programma può considerare quando cerca l’elemento successivo. Per impostazione predefinita, questo parametro è impostato su 5 per gli elementi semplici e su 1 per gli elementi di tipo Group. Ciò significa che, se il programma trova 15 ipotesi per un dato elemento, selezionerà le cinque migliori, lasciando incomplete le altre 10 catene di ipotesi. Gli elementi di tipo Group, di norma, vengono rilevati in modo più affidabile rispetto agli elementi semplici. Pertanto, la migliore ipotesi per un elemento di tipo Group di solito risulta quella corretta. Nella maggior parte dei casi, il programma ha diverse catene di ipotesi incomplete e, di conseguenza, diverse possibili direzioni di ricerca. Il programma cerca la migliore ipotesi utilizzando il classico algoritmo di “ricerca in ampiezza”. Questo algoritmo prevede che il programma provi sempre a completare la catena che, al momento, ha la qualità migliore, indipendentemente dalla sua lunghezza. Supponiamo di avere un FlexiLayout che descrive 30 elementi per i quali sono state create due catene di ipotesi: una catena di 29 elementi con una qualità stimata di 0,89 e una catena di 2 elementi con una qualità stimata di 0,92. Il programma tenterà di completare la catena più corta, che è migliore in termini di qualità, finché la qualità di tutte le sue estensioni non diventerà inferiore a quella della prima catena. Nel caso di un elemento di tipo Group, il programma utilizza la cosiddetta ottimizzazione della qualità. Quando trova una catena completa di ipotesi ideale per un dato elemento di tipo Group (cioè quando la qualità di questa catena è 1), ignora tutte le altre varianti. Il numero totale di ipotesi per ciascun elemento è limitato a 10.000. Il numero di ipotesi create per un elemento può superare il valore impostato in MaxHypothesesCount. In tal caso, solo il numero di migliori ipotesi definito dall’utente confluirà nell’albero delle ipotesi.