Mencoba memungkinkan untuk penyimpanan efisien daftar elemen. Awalan dibagikan sehingga hemat ruang.
Saya mencari cara yang sama untuk menyimpan pohon secara efisien. Saya ingin dapat memeriksa keanggotaan dan menambahkan elemen, mengetahui apakah pohon yang diberikan adalah subtree dari beberapa pohon yang disimpan atau jika ada pohon yang disimpan menjadi subtree dari pohon yang diberikan juga diinginkan.
Saya biasanya akan menyimpan sekitar 500 pohon biner tidak seimbang dengan tinggi kurang dari 50.
EDIT
Aplikasi saya adalah semacam pemeriksa model menggunakan semacam memoisasi. Bayangkan saya memiliki keadaan dan rumus berikut: f = ϕ dan g = ( ϕ ∨ ψ ) dengan ϕ menjadi subformula yang kompleks, dan bayangkan saya pertama-tama ingin tahu apakah f berlaku dalam s . Saya memeriksa apakah ϕ berlaku dan setelah proses yang panjang saya mendapatkan bahwa ini adalah masalahnya. Sekarang, saya ingin tahu apakah g memegang s . Saya ingin mengingat fakta bahwa f memegang dan memperhatikan bahwa g ⇒ fsehingga saya dapat memperoleh di s hampir seketika.
Sebaliknya, jika saya telah membuktikan bahwa g tidak menahan t , maka saya ingin mengatakan bahwa f tidak menahan t hampir secara instan.
Kita dapat membuat urutan parsial pada rumus, dan memiliki iff g ⇒ f . Untuk setiap negara s , kita menyimpan dua set formula; L ( s ) menyimpan formula maksimal yang tahan dan l ( s ) menyimpan formula minimal yang tidak tahan. Sekarang diberi status s dan rumus g , saya dapat melihat apakah ∃ f ∈ L ( s ) , f ⇒ g , atau jika ∃ f ∈ l ( s ) dalam hal ini saya selesai dan saya tahu langsung apakah g berlaku di s .
Saat ini, dan l diimplementasikan sebagai daftar dan ini jelas tidak optimal karena saya perlu mengulangi semua formula yang disimpan secara individual. Jika formula saya adalah urutan, dan jika urutan parsial "adalah awalan" maka trie bisa membuktikan lebih cepat. Sayangnya formula saya memiliki struktur seperti pohon berdasarkan ¬ , ∧ , operator modal, dan proposisi atom.
Seperti @Raphael dan @Jack tunjukkan, saya bisa mengurutkan pohon, tapi saya khawatir itu tidak akan menyelesaikan masalah karena urutan parsial yang saya tertarik tidak akan sesuai dengan "adalah awalan".