Los intentos permiten el almacenamiento eficiente de listas de elementos. Los prefijos se comparten, por lo que ahorra espacio.
Estoy buscando una forma similar de almacenar árboles de manera eficiente. Me gustaría poder verificar la membresía y agregar elementos, sabiendo si un árbol dado es un subárbol de algunos árboles almacenados o si existe un árbol almacenado, siendo también un subárbol del árbol dado.
Por lo general, almacenaría alrededor de 500 árboles binarios desequilibrados de altura inferior a 50.
EDITAR
Mi aplicación es algún tipo de verificador de modelos que usa algún tipo de memorización. Imagínese que tengo un estado y las fórmulas siguientes: f = φ y g = ( φ ∨ Psi ) con φ ser un subfórmula complejo, e imaginar que primero quiero saber si f tiene en s . Compruebo si ϕ se mantiene y después de un largo proceso, obtengo que ese es el caso. Ahora, quiero saber si g se mantiene en s . Me gustaría recordar el hecho de que f se mantiene y notar que g ⇒ fpara que pueda derivar en s casi al instante.
Por el contrario, si he demostrado que g no se mantiene en t , entonces quiero decir que f no se mantiene en t casi al instante.
Podemos construir un orden parcial en las fórmulas y tener iff g ⇒ f . Para cada estado s , almacenamos dos conjuntos de fórmulas; L ( s ) almacena las fórmulas máximas que contienen y l ( s ) almacena las fórmulas mínimas que no contienen. Ahora, dado un estado sy una fórmula g , puedo ver si ∃ f ∈ L ( s ) , f ⇒ g , o si ∃ f ∈ l ( s ) en cuyo caso he terminado y sé directamente si g se cumple en s .
Actualmente, y L se implementan como listas y esto claramente no es óptimo porque necesito iterar a través de todas las fórmulas almacenadas individualmente. Si mis fórmulas fueran secuencias, y si el orden parcial fuera "es un prefijo de", entonces un trie podría resultar mucho más rápido. Desafortunadamente, mis fórmulas tienen una estructura de árbol basada en ¬ , ∧ , un operador modal y proposiciones atómicas.
Como señalan @Raphael y @Jack, podría secuenciar los árboles, pero me temo que no resolvería el problema porque el orden parcial en el que estoy interesado no correspondería a "es un prefijo de".