Вопрос относительно алгоритма Смита-Уотермана - PullRequest
1 голос
/ 04 июля 2010

Я запускаю несколько тестов на соответствие строк, используя алгоритм Смита-Уотермана.В настоящее время я использую SimMetrics (проект с открытым исходным кодом Java) для запуска тестов.

Может кто-нибудь объяснить, почему, когда я сравниваю «Bloggs J.»для «Bloggs» я получаю значение сходства 1,0?

Очевидно, что есть пробел (например, 'o' и '.'), Но, похоже, он не наказывается.

Заранее спасибо.

1 Ответ

5 голосов
/ 05 июля 2010

Алгоритм Смита-Уотермана является локальным алгоритмом выравнивания.Это означает, что он предназначен для выравнивания частей строк, которые выравниваются хорошо, в отличие от выравнивания целых строк.«Пробел», о котором вы говорите, не должен наказываться как пробел, поскольку считается, что он произошел за пределами выровненного региона.Никакая строка с длиной «Bloggs» не могла бы лучше соответствовать «Bloggs J.»чем «Bloggs» делает.Если вы хотите глобальное выравнивание, вы должны использовать вместо этого алгоритм Нидлмана-Вунша .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...