2010-08-22 12 views
5

Stavo dando un'occhiata a this question e poi leggendo su Tarjan's least common ancestors algorithm. Non ho mai incontrato alcuna applicazione di algoritmi LCA prima.Quali sono le applicazioni pratiche degli algoritmi degli antenati più comuni?

Dove sono comunemente utilizzati tali algoritmi LCA?

+0

Spatial alberi della struttura dei dati nel calcolo scientifico, alberi del suffisso per le stringhe nella biologia computazionale, ecc. Ho dimenticato i dettagli, mi dispiace, ma è sicuramente utile. – polygenelubricants

risposta

3

Non so dove viene utilizzato, ma ho un paio di idee in cui potrebbe abituarsi:

  • computer grafica: spesso scenari 3D vengono suddivisi in cubetti che formano una struttura ad albero. Se si dispone di un oggetto contenuto in due di questi cubi, un algoritmo LCA fornisce il cubo più piccolo contenente il più piccolo.

  • analisi della gens al fine di trovare le relazioni tra le specie ed il loro più basso antenato comune

  • algoritmi di unione dei sistemi di controllo versione

+0

grazie! controllo versione -> unione a tre vie: http://en.wikipedia.org/wiki/Merge_(revision_control)#Three-way_merge – Lazer

+0

È utile anche per alcuni tipi di elaborazione di stringhe quando si cercano le parole radice per diversi suffissi. –

4

Nel compilatori, la LCA di due blocchi di base è un posto puoi mettere un calcolo così è disponibile per entrambi. Ciò potrebbe essere utile per eliminare le sottoespressioni comuni o per inserire un nodo-phi per la conversione SSA. Questi algoritmi sono ben evoluti ed altamente ottimizzata, però, in modo che il LCA stessa può essere difficile da vedere, ad esempio, SSA e PRE

+0

grazie a @Doug Currie – Lazer

Problemi correlati