Edytuj odległość za pomocą operacji przesuwania


13

Motywacja: Współautor redaguje manuskrypt i chciałbym zobaczyć jasne podsumowanie edycji. Wszystkie narzędzia podobne do „diff” są zwykle bezużyteczne, jeśli zarówno przenosisz tekst (np. Reorganizując strukturę), jak i edytujesz lokalnie. Czy to naprawdę takie trudne?


Definicje: Chciałbym znaleźć minimalną odległość edycji, gdzie dozwolone operacje to:

  • „tanie” operacje: dodaj / zmień / usuń pojedynczy znak (zwykłe operacje Levenshtein),

  • „drogie”: operacje: przenieś podciąg do nowej lokalizacji ( abcd↦acbd dla dowolnych ciągów a , b , c , d ).

Biorąc pod uwagę dwa ciągi x i y i całkowite k i K , chciałbym rozwiązać następujący problem:

  • czy możesz przekształcić x w y przy użyciu co najwyżej k tanich operacji i co najwyżej K kosztownych operacji?

Pytania:

  1. Czy ten problem ma nazwę? (Brzmi jak bardzo standardowe pytanie w kontekście wyrównania sekwencji).

  2. Czy to trudne?

  3. Jeśli jest trudny, czy jest możliwy do ustalenia parametr stały z jako parametrem?K

  4. Czy istnieją wydajne algorytmy aproksymacyjne? (Np znaleźć rozwiązanie z co najwyżej tani i 2 K kosztownych operacji, jeżeli rozwiązanie z k tanie i K kosztownych operacji istnieją).2k2KkK

Próbowałem spojrzeć na metryki ciągów wymienione w Wikipedii , ale żadna z nich nie wyglądała dobrze.


3
Dla problemem jest Sortowanie według transpozycji. Patrz np. Web.cs.dal.ca/~whidden/HThesis07.pdf Nie napotkałem twojego problemu, ale wydaje się, że jest bardzo dobrze zmotywowany. k=0
— Serge Gaspers,

4
Twardość NP problemu sortowania według transpozycji została udowodniona w 2010 roku, patrz Sortowanie według transpozycji jest trudne .
— Marzio De Biasi,

3
Transpozycje są trudne, ale wstawienia i usunięcia nie. Jeśli zezwolisz, aby kosztowną operacją było albo usunięcie dowolnego podłańcucha, albo wstawienie dowolnego podłańcucha drugiego łańcucha, problem powinien stać się dość łatwy. Wynikowa odległość nie byłaby jednak symetryczna.
— Jouni Sirén,

Bardziej interesuje mnie ciągliwość parametrów o ustalonych parametrach. Czy jest jakieś nowe odkrycie?
— Yixin Cao

Odpowiedzi:



4

kak+ba,b≥0

xa+baAA[i,j]x[1…i]y[1…j]AdA[i−1,j]A[i−1,j−1]A[i,j−1]Ad[i−1,j]A[i,j]Ad[i,j]O(1)

xAs

O(1)xO(|x|)As[i,j−1]y[j]A[i,j]As[i,j]

zy[j]zAs[i,j−1]xz′zz′y[j]xO(|z|−|z′|)As[i,j]A[i,j−|z′|−1]A[i,j−1]z′O(1)As[i,j]O(|z′|)

O(min(|x|⋅|y|2,|x|2⋅|y|))

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.