Étant donné certains fragments de chaîne, je voudrais trouver la chaîne unique la plus courte possible ("chaîne de sortie") qui contient tous les fragments. Les fragments peuvent se chevaucher dans la chaîne de sortie.
Exemple:
Pour les fragments de chaîne:
BCDA
AGF
ABC
La chaîne de sortie suivante contient tous les fragments et a été créée par ajout naïf:
BCDAAGFABC
Cependant, cette chaîne de sortie est meilleure (plus courte), car elle utilise des chevauchements:
ABCDAGF
^
ABC
^
BCDA
^
AGF
Je recherche des algorithmes pour ce problème. Il n'est pas absolument important de trouver la chaîne de sortie strictement la plus courte, mais plus elle est courte, mieux c'est. Je cherche un algorithme meilleur que celui naïf évident qui essaierait d'ajouter toutes les permutations des fragments d'entrée et de supprimer les chevauchements (qui semblerait être NP-Complete).
J'ai commencé à travailler sur une solution et cela s'avère assez intéressant; J'aimerais voir ce que les autres pourraient trouver. J'ajouterai mon travail en cours à cette question dans un moment.