Eu tenho um grande conjunto de dados de árvores e gostaria de pesquisá-lo especificando uma árvore (subgrafo conectado). A consulta deve retornar todas as ocorrências da árvore no conjunto de dados.
Existem algoritmos eficientes para fazer isso?
Eu estava pensando em algo como matrizes de sufixo, no entanto, codificar ingenuamente as árvores, pois as seqüências de caracteres (por uma ordem transversal fixa de seus nós) não funcionarão, pois a árvore de busca pode ter qualquer forma arbitrária.
ATUALIZAR:
Alguns detalhes sobre as instâncias típicas que eu espero:
O conjunto de dados consistirá em pelo menos dezenas de milhares de árvores, cada uma consistindo em cerca de vinte a trinta nós. As árvores não serão binárias, mas o número típico de filhos por nó será pequeno (geralmente não maior que quatro ou cinco, embora em alguns casos degenerados possa chegar a cerca de trinta). O número de etiquetas estará na casa das dezenas de milhares.
Eu preciso disso para aplicativos de PNL: cada árvore será a análise de dependência de uma frase, cada nó representando uma palavra oculta e cada rótulo uma palavra de dicionário (com alguma decoração).