As tentativas permitem o armazenamento eficiente de listas de elementos. Os prefixos são compartilhados e, portanto, economizam espaço.
Estou procurando uma maneira semelhante de armazenar árvores com eficiência. Eu gostaria de poder verificar a associação e adicionar elementos, sabendo se uma determinada árvore é uma subárvore de algumas árvores armazenadas ou se existe uma árvore armazenada sendo uma subárvore da árvore especificada também é desejável.
Normalmente, eu armazenava cerca de 500 árvores binárias desequilibradas de altura menor que 50.
EDITAR
Meu aplicativo é algum tipo de verificador de modelo usando algum tipo de memorização. Imagine que eu tenha um estado e as seguintes fórmulas: e com ser uma subfórmula complexo, e imaginar Primeiro eu quero saber se tem em . Verifico se mantém e, após um longo processo, obtenho que é esse o caso. Agora, quero saber se contém . Gostaria de lembrar o fato de que detém e de notar que para que eu possa derivar in quase instantaneamente.f = φ g = ( φ ∨ ip ) φ f s φ g s f g ⇒ f g s
Por outro lado, se eu provei que não se sustenta , então quero dizer que não se sustenta quase que instantaneamente.t f t
Podemos construir uma ordem parcial em fórmulas e ter iff . Para cada estado , armazenamos dois conjuntos de fórmulas; armazena as fórmulas máximas que retêm e armazena as fórmulas mínimas que não retêm. Agora, dado um estado e uma fórmula , posso ver se , ou se , caso em que estou feito e sei diretamente se contém .g ⇒ f s L ( s ) l ( s ) s g ∃ f ∈ L ( s ) , f ⇒ g ∃ f ∈ l ( s ) , g ⇒ f g s
Atualmente, e são implementados como listas e isso claramente não é o ideal, pois preciso percorrer todas as fórmulas armazenadas individualmente. Se minhas fórmulas fossem sequências e se a ordem parcial fosse "é um prefixo de", um teste poderia ser muito mais rápido. Infelizmente, minhas fórmulas têm uma estrutura de árvore com base em , um operador modal e proposições atômicas.l ¬ , ∧
Como @Raphael e @Jack apontam, eu poderia sequenciar as árvores, mas temo que isso não resolva o problema porque a ordem parcial em que estou interessado não corresponderia a "é um prefixo de".