I tentativi consentono una memorizzazione efficiente degli elenchi di elementi. I prefissi sono condivisi, quindi è efficiente nello spazio.
Sto cercando un modo simile per conservare gli alberi in modo efficiente. Vorrei poter verificare l'appartenenza e aggiungere elementi, sapendo se un determinato albero è una sottostruttura di alcuni alberi memorizzati o se esiste un albero memorizzato che è una sottostruttura dell'albero specificato è anche desiderabile.
Solitamente conserverei circa 500 alberi binari non bilanciati di altezza inferiore a 50.
MODIFICARE
La mia applicazione è una sorta di modello di controllo che utilizza una sorta di memoization. Immagina di avere uno stato e le seguenti formule: f = ϕ e g = ( ϕ ∨ ψ ) con ϕ essendo un subformula complesso, e immagina di voler prima sapere se f vale in s . Controllo se ϕ è valido e dopo un lungo processo ottengo che sia così. Ora voglio sapere se g vale in s . Vorrei ricordare il fatto che f vale e notare che g ⇒ fin modo che io possa derivare in s quasi all'istante.
Al contrario, se ho dimostrato che g non tiene in t , allora voglio dire che f non tiene in t quasi all'istante.
Possiamo costruire un ordine parziale sulle formule e avere iff g ⇒ f . Per ogni stato s , memorizziamo due serie di formule; L ( s ) memorizza le formule massime che detengono e l ( s ) memorizza le formule minime che non detengono. Ora dato uno stato s e una formula g , posso vedere se ∃ f ∈ L ( s ) , f ⇒ g , o se ∃ f ∈ l ( s ) nel qual caso ho finito e so direttamente se g vale in s .
Attualmente, e L sono implementate come liste e questo non è chiaramente ottimale perché ho bisogno per scorrere tutte le formule memorizzate singolarmente. Se le mie formule fossero sequenze, e se l'ordine parziale fosse "è un prefisso di", un trie potrebbe rivelarsi molto più veloce. Sfortunatamente le mie formule hanno una struttura ad albero basata su ¬ , ∧ , un operatore modale e proposizioni atomiche.
Come sottolinea @Raphael e @Jack, potrei sequenziare gli alberi, ma temo che non risolverebbe il problema perché l'ordine parziale a cui sono interessato non corrisponderebbe a "è un prefisso di".