Tengo un gran conjunto de datos de árboles y me gustaría buscarlo especificando un treelet (subgrafo conectado). La consulta debe devolver todas las ocurrencias del treelet en el conjunto de datos.
¿Hay algoritmos eficientes para hacerlo?
Estaba pensando en algo así como matrices de sufijos, sin embargo, codificar ingenuamente los árboles como cadenas (mediante un orden transversal fijo de sus nodos) no funcionará, ya que el treelet de búsqueda puede tener cualquier forma arbitraria.
ACTUALIZAR:
Algunos detalles sobre las instancias típicas que espero:
El conjunto de datos consistirá en al menos decenas de miles de árboles, cada uno de los cuales constará de veinte a treinta nodos. Los árboles no serán binarios, pero el número típico de niños por nodo será pequeño (generalmente no mayor de cuatro o cinco, aunque en algunos casos degenerados puede llegar a unos treinta). El número de etiquetas estará en las decenas de miles.
Lo necesito para las aplicaciones de PNL: cada árbol será el análisis de dependencia de una oración, cada nodo representará la aparición de una palabra y cada etiqueta será una palabra del diccionario (con algo de decoración).