Edytuj odległość na drzewach

Ten artykuł jest szkicem o komputerach .

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.

Notacje

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ń.

Strategie dekompozycji

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):

Zhang-Shasha

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 .

Klein

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 .

Wariant

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.

Uwagi i referencje

  1. Paaß w 2018 roku .
  2. Dulucq i Touzet 2003 .
  3. Zhang i Shasha 1989 .
  4. Klein 1998 .
  5. Erik D. Demaine, Shay Mozes, Benjamin Rossmann i Oren Weimann, „  Optymalny algorytm dekompozycji dla odległości edycji drzewa  ”, ACM Transactions on Algorithms , tom.  6, n O  1, 2009( DOI  10.1145 / 1644015.1644017 ).

Bibliografia

Link zewnętrzny

<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">