Możesz dzielić się swoją wiedzą doskonaląc ją ( jak? ) Zgodnie z zaleceniami odpowiednich projektów .
W informatyce teoretycznej w biochemii, a także w zastosowaniach w wizji komputerowej , na przykład odległość edycji drzewa (w języku angielskim odległość edycji drzewa ) jest miarą, która ocenia, pod względem liczby przekształceń elementarnych, liczbę wymaganych operacji i ich koszt przenosić się z jednego drzewa na drugie. Jest to pojęcie, które rozszerza na drzewa odległość edycji (lub odległość Levenshteina ) między ciągami znaków. Odległość pomaga na przykład porównać drugorzędową strukturę RNA lub drzewa filogenetyczne w biologii, a nawet kierować zaleceniami dotyczącymi edycji dla uczniów w inteligentnych systemach nauczania.
Istnieje kilka wariantów tego pojęcia, w zależności od charakteru rozważanych drzew. Ogólnie rzecz biorąc, są to drzewa abstrakcyjne; bardziej restrykcyjnie, rozważamy platany, to znaczy takie, że sąsiednie wierzchołki wierzchołka są uporządkowane. Jeszcze bardziej szczególny jest przypadek platanów ukorzenionych: takie drzewo składa się z korzenia i uporządkowanej serii poddrzew. Tak jest w przypadku opisanym poniżej. Przegląd zawiera artykuł Benjamina Paaßena.
Podstawowe operacje transformacji drzewa są, tak jak w przypadku łańcuchów znaków, usuwanie , wstawianie i zmiana nazwy , stosowane do węzła drzewa.
Traktujemy drzewa jako struktury rekurencyjne: drzewo składa się z węzła głównego , a las jest serią drzew. Odległość edit dwóch drzew i jest to minimalna liczba insercji, delecji lub zmienia nazwy węzłów, zauważył , niezbędne do przekształcenia się . Obliczanie odległości edycyjnej na drzewie jest podobne do obliczania na ciągach. Jednak wybór kolejności rekurencji może znacząco zmienić złożoność czasową obliczeń.
Poniższa dyskusja pochodzi z artykułu Dulucqa i Touzeta. Niech i bądź dwoma niepustymi drzewami. Obliczenie odbywa się w następujący sposób:
gdzie (odp. , odp. ) oznacza koszt związany z usunięciem (odp. wstawieniem, odp. zmianą nazwy) węzła.
Koszt obliczenia odległości edycyjnej na drzewach odbywa się dzięki odległości edycyjnej na lasach, zawsze odnotowywanej . Obliczenie odległości edycji w lasach można wykonać na dwa sposoby, faworyzując lewą lub prawą stronę: obliczenie dotyczy dwóch serii drzew, zaznaczonych i , gdzie i są drzewami oraz i zestawami szczątków. Pozując i , strategie to:
Strategia dekompozycja jest sukcesja wyborów między rozkładem po lewej lub po prawej stronie rozkładu. Każdy algorytm oparty na dekompozycji ma w najgorszym przypadku złożoność w czasie co najmniej w . Algorytmy programowania dynamicznego można badać za pomocą strategii dekompozycji. Dwie z najczęściej stosowanych strategii to strategie Zhang-Shasha (1989) i Klein (1998):
Strategia dekompozycji Zhang-Shasha polega na systematycznym stosowaniu dekompozycji lewostronnej.
Zhang i Shasha wykazali, że złożoność czasowa ich algorytmu obliczania odległości edycji dwóch drzew i wynosi w , gdzie jest sumą rozmiarów dwóch drzew. Z drugiej strony złożoność tego algorytmu jest w .
Strategia dekompozycji Kleina wykorzystuje pojęcie ścieżki ciężkiej . Wybór rozkładu jest „po lewej”, jeśli pierwsze prawe dziecko A znajduje się na ciężkiej ścieżce, a „po prawej” w pozostałych przypadkach.
Złożoność czasowa tego algorytmu wynosi .
Demaine i jego współautorzy zaproponowali algorytm obliczania odległości edycji na drzewach w oparciu o strategię dekompozycji Dulucqa i Touzeta : Algorytm ten ma najgorszy przypadek złożoności czasowej w i wewnątrz złożoności w przestrzeni.