Tries cho phép lưu trữ hiệu quả danh sách các yếu tố. Các tiền tố được chia sẻ để nó là không gian hiệu quả.
Tôi đang tìm kiếm một cách tương tự để lưu trữ cây hiệu quả. Tôi muốn có thể kiểm tra tư cách thành viên và thêm các yếu tố, biết nếu một cây nhất định là cây con của một số cây được lưu trữ hoặc nếu có một cây được lưu trữ là cây con của cây đã cho cũng là điều mong muốn.
Tôi thường sẽ lưu trữ khoảng 500 cây nhị phân không cân bằng có chiều cao dưới 50.
BIÊN TẬP
Ứng dụng của tôi là một số loại trình kiểm tra mô hình bằng cách sử dụng một số loại ghi nhớ. Hãy tưởng tượng tôi có một trạng thái và các công thức sau: và với là một subformula phức tạp, và tưởng tượng đầu tiên tôi muốn biết nếu giữ trong . Tôi kiểm tra nếu giữ và sau một quá trình dài tôi nhận được rằng đó là trường hợp. Bây giờ, tôi muốn biết nếu giữ trong . Tôi muốn nhớ thực tế là giữ và để ý rằng để tôi có thể lấy được trong gần như ngay lập tức.f = ϕ g = ( ϕ ∨ ψ ) ϕ f s ϕ g s f g ⇒ f g s
Ngược lại, nếu tôi đã chứng minh rằng không giữ trong , thì tôi muốn nói rằng không giữ trong gần như ngay lập tức.t f t
Chúng ta có thể xây dựng một thứ tự một phần trên các công thức và có iff . Đối với mỗi trạng thái , chúng tôi lưu trữ hai bộ công thức; lưu trữ các công thức tối đa giữ và lưu trữ các công thức tối thiểu không giữ. Ngay bây giờ cho một trạng thái và một công thức , tôi có thể thấy nếu , hoặc nếu trong trường hợp này tôi thực hiện và tôi biết trực tiếp liệu giữ trong .g ⇒ f s L ( s ) l ( s ) s g ∃ f ∈ L ( s ) , f ⇒ g ∃ f ∈ l ( s ) , g ⇒ f g s
Hiện tại, và được triển khai dưới dạng danh sách và điều này rõ ràng là không tối ưu vì tôi cần lặp lại thông qua tất cả các công thức được lưu trữ riêng lẻ. Nếu các công thức của tôi là các chuỗi và nếu thứ tự từng phần là "là tiền tố của" thì một bộ ba có thể chứng minh nhanh hơn nhiều. Thật không may, các công thức của tôi có cấu trúc giống như cây dựa trên , toán tử phương thức và các mệnh đề nguyên tử.
Như @Raphael và @Jack chỉ ra, tôi có thể tuần tự hóa các cây, nhưng tôi sợ nó sẽ không giải quyết được vấn đề vì thứ tự một phần tôi quan tâm sẽ không tương ứng với "là tiền tố của".