Мое почтение!
Есть четыре последовательности символов:
DBCA,
AC
ACB
BCA
Необходимо трансформировать эти последовательности в (примерно) следующие:
D-BCA-
-A-C--
-A-C-B
--BCA-
То есть, «выровнять» эти последовательности таким образом, чтобы на среди всех последовательностей в каждой позиции было максимальное число идентичных элементов (словами коряво; из примера, надеюсь, понятнее).
Википедия на
Sequence Alignment предлагает некоторое число алгоритмов, но работают они с двумя последовательностями, тогда как мне надо выравнивать больше и как их расширить для обработки N последовательностей — не придумаю.
Может быть, коллективный разум что-нибудь может предложить? Ограничений по памяти и алгоритмической сложности нет — последовательности от силы в 4 элемента каждая, общее их число — не больше 10.