Mam duży zestaw danych o drzewach i chciałbym je przeszukać, określając treelet (połączony podgrupa). Kwerenda powinna zwrócić wszystkie wystąpienia treeline w zbiorze danych.
Czy istnieją wydajne algorytmy do tego celu?
Myślałem o czymś takim jak tablice sufiksów, jednak naiwne kodowanie drzew, ponieważ łańcuchy (przez ustaloną kolejność ich węzłów) nie będą działać, ponieważ szkielet wyszukiwania może mieć dowolny dowolny kształt.
AKTUALIZACJA:
Kilka szczegółów na temat typowych przypadków, których oczekuję:
Zbiór danych będzie się składał z co najmniej dziesiątek tysięcy drzew, z których każde składa się z około dwudziestu do trzydziestu węzłów. Drzewa nie będą binarne, ale typowa liczba dzieci na węzeł będzie niewielka (zwykle nie większa niż cztery lub pięć, chociaż w niektórych zdegenerowanych przypadkach może osiągnąć około trzydziestu). Liczba etykiet wyniesie dziesiątki tysięcy.
Potrzebuję tego dla aplikacji NLP: każde drzewo będzie parsowaniem zależności zdania, każdy węzeł reprezentuje występowanie słowa, a każda etykieta słowo słownikowe (z pewną dekoracją).