Sto davvero lottando con un problema in cui ho bisogno di "sfoltire" gli scenari disponibili a quelli che un utente ha definito come validi. Di seguito è riportato un piccolo esempio del problema che sto cercando di risolvere in .Net (C #). Dati i livelli / i valori mostrati sotto, l'utente potrebbe scegliere che ci sono solo poche combinazioni valide, ma se immaginate che i livelli seguenti siano 30-40 livelli di dati invece del 5 che ho mostrato, potreste vedere il mio dilemma. Potrei dover passare da milioni a miliardi di combinazioni NON VALIDE per ottenere le combinazioni valide. Ci saranno casi in cui tutti i valori nel livello sono applicabili e alcuni in cui sono solo quelle combinazioni che l'utente ha specificato.
Livelli attuali / Valori dei dati:
Gli utenti hanno affermato che le combinazioni valide sono:
*Notice all from level 4 are valid
Receiver -> Sony -> 500 -999 -> Retail
Receiver -> Sony -> 1000 - Up -> Retail
Risultati attesi dai 5 livelli di informazione forniti:
Receiver -> Sony -> 500-999 -> Open -Box -> Retail
Receiver -> Sony -> 500-999 -> New -> Retail
Receiver -> Sony -> 1000-Up -> Open -Box -> Retail
Receiver -> Sony -> 1000-Up -> New -> Retail
Le cose che ho provato sono performanti con piccoli set, ma se dovessi avere un sacco di livelli e grosse lacune nelle combinazioni che non mi permettessero di sfoltire le combinazioni valide fino a quando non ero nei livelli più profondi, sto incontrando importanti problemi di prestazioni. Ovviamente non sto affrontando il problema in modo errato.
Qualsiasi altro punto di vista o suggerimento su come affrontare il problema sarebbe molto apprezzato.