J'essaie de stocker une grande liste de chaînes de manière concise afin qu'elles puissent être analysées/recherchées très rapidement. Un graphique de mots acycliques dirigés (DAWG) s'adapte merveilleusement bien à cet objectif. Cependant, je n'ai pas de liste de chaînes à inclure en premier lieu, donc il doit être progressivement construit. De plus, lorsque je le cherche dans une chaîne, je dois ramener les données associées au résultat (pas seulement un dicton booléen s'il était présent).Comment puis-je créer un graphe de mots acyclique dirigé incrémental pour stocker et rechercher des chaînes?
J'ai trouvé des informations sur une modification du DAWG pour le suivi des données de chaîne ici: http://www.pathcom.com/~vadco/adtdawg.html Il semble extrêmement, extrêmement complexe et je ne suis pas sûr que je suis capable de l'écrire.
J'ai également trouvé quelques documents de recherche décrivant des algorithmes de construction incrémentiels, bien que j'ai trouvé que les documents de recherche en général ne sont pas très utiles.
Je ne pense pas que je suis assez avancé pour être capable de combiner ces deux algorithmes moi-même. Existe-t-il déjà la documentation d'un algorithme qui les présente, ou un algorithme alternatif avec une bonne utilisation de la mémoire? & speed?
Merci, JohnPaul. Je vais probablement utiliser un arbre de base pour stocker les chaînes, bien que j'aurais aimé économiser un peu plus sur la mémoire. J'espérais qu'un compromis entre les algorithmes de construction DAWG incrémentaux et votre structure de suivi de chaînes existait, mais je suppose que non! Malheureusement, je ne peux pas vous offrir du travail ou un travail, car c'est juste pour un de mes projets de loisir. Si vous souhaitez créer et documenter une structure flexible pour le plaisir, soyez mon invité et bonne chance (je n'ai pas le cerveau pour ça, au moins)! –