Мотивація: співавтор редагує рукопис, і я хотів би побачити чіткий підсумок змін. Усі інструменти, що нагадують "різницю", як правило, марні, якщо ви обидва рухаєте текст (наприклад, переорганізовуєте структуру) та робите локальні зміни. Невже це так важко виправити?
Визначення: я хотів би знайти мінімальну відстань редагування, де дозволені операції:
"дешеві" операції: додавання / зміна / видалення одного символу (звичайні операції Левенштейна),
"дорого": операції: перемістіть підрядку на нове місце ( для будь-яких рядків a , b , c , d ).
Враховуючи два рядки і y та цілі числа k і K , я хотів би вирішити наступну задачу:
- чи можете ви перетворити на y, використовуючи максимум k дешевих операцій і не більше K дорогих операцій?
Запитання:
Чи має ця проблема назва? (Це звучить як дуже стандартне запитання в контексті вирівнювання послідовностей.)
Це важко?
Якщо це важко, чи можна відслідковувати фіксований параметр з як параметр?
Чи існують ефективні алгоритми наближення? (Наприклад, знайдіть рішення з максимум дешевими та 2 K дорогими операціями, якщо існує рішення з k дешевими та K дорогими операціями.)
Я намагався подивитися на рядкові метрики, перелічені у Вікіпедії , але жодна з них не виглядала правильно.