Les essais permettent un stockage efficace des listes d'éléments. Les préfixes sont partagés, ce qui optimise l'espace.
Je cherche un moyen similaire de stocker efficacement les arbres. Je voudrais pouvoir vérifier l'appartenance et ajouter des éléments, sachant si un arbre donné est un sous-arbre de certains arbres stockés ou s'il existe un arbre stocké étant un sous-arbre de l'arbre donné est également souhaitable.
Je stockais généralement environ 500 arbres binaires non équilibrés d'une hauteur inférieure à 50.
ÉDITER
Mon application est une sorte de vérificateur de modèle utilisant une sorte de mémorisation. Imaginez que j'ai un état et les formules suivantes: et avec étant une sous-formule complexe, et imaginez que je veux d'abord savoir si tient dans . Je vérifie si tient et après un long processus j'obtiens que c'est le cas. Maintenant, je veux savoir si est valable dans l' . Je voudrais me souvenir du fait que est vrai et remarquer que pour que je puisse dériver in presque instantanément.f = ϕ g = ( ϕ ∨ ψ ) ϕ f s ϕ g s f g ⇒ f g s
Inversement, si j'ai prouvé que ne tient pas en , alors je veux dire que ne tient pas en presque instantanément.t f t
Nous pouvons construire un ordre partiel sur les formules, et avoir iff . Pour chaque état , nous stockons deux ensembles de formules; stocke les formules maximales qui tiennent et stocke les formules minimales qui ne tiennent pas. Maintenant donné un état et une formule , je peux voir si , ou si auquel cas je suis fait et je sais directement si est valable à l' .g ⇒ f s L ( s ) l ( s ) s g ∃ f ∈ L ( s ) , f ⇒ g ∃ f ∈ l ( s ) , g ⇒ f g s
Actuellement, et sont implémentés sous forme de listes et ce n'est clairement pas optimal car j'ai besoin d'itérer individuellement toutes les formules stockées. Si mes formules étaient des séquences, et si l'ordre partiel était "est un préfixe de" alors un trie pourrait s'avérer beaucoup plus rapide. Malheureusement, mes formules ont une structure arborescente basée sur ¬ , ∧ , un opérateur modal et des propositions atomiques.l
Comme le souligne @Raphael et @Jack, je pourrais séquencer les arbres, mais je crains que cela ne résoudrait pas le problème car l'ordre partiel qui m'intéresse ne correspondrait pas à "est un préfixe de".