Problem z aktualizacją listy

Aktualizacja listy lub problem dostępu do listy to prosty model używany w badaniu konkurencyjnej analizy algorytmów online . Mając zestaw elementów na liście, gdzie koszt dostępu do elementu jest proporcjonalny do jego odległości od początku listy, np. Linked List i sekwencję żądań dostępu, problemem jest wymyślenie strategii zmiany kolejności listę tak, aby zminimalizować całkowity koszt dostępów. Ponowne zamówienie można wykonać w dowolnym momencie, ale wiąże się to z kosztami. Model standardowy obejmuje dwie akcje zmiany kolejności:

  • Swobodna transpozycja elementu, do którego uzyskuje się dostęp, w dowolnym miejscu przed jego aktualną pozycją;
  • Płatna transpozycja kosztu jednostkowego za wymianę dowolnych dwóch sąsiednich pozycji na liście. Wydajność algorytmów zależy od konstruowania sekwencji żądań przez adwersarzy w ramach różnych modeli adwersarzy

Algorytm online dla tego problemu musi zmienić kolejność elementów i obsługiwać żądania tylko na podstawie wiedzy o wcześniej żądanych elementach, a zatem jego strategia może nie mieć optymalnego kosztu w porównaniu z algorytmem offline, który widzi całą sekwencję żądań i opracowuje kompletna strategia przed obsłużeniem pierwszego żądania.

Sugerowano, że wraz z jego pierwotnymi zastosowaniami problem ten jest bardzo podobny do problemów związanych z poprawą globalnego kontekstu i ściśliwości po transformacji Burrowsa-Wheelera . Po tej transformacji pliki mają zwykle duże obszary z lokalnie wysokimi częstotliwościami, a wydajność kompresji jest znacznie poprawiona dzięki technikom, które mają tendencję do przesuwania często występujących znaków w kierunku zera lub początku „listy”. Z tego powodu metody i warianty funkcji Move-to-Front i liczenia częstotliwości często są zgodne z algorytmem BWT w celu poprawy ściśliwości.

Modele przeciwników

Przeciwnik to jednostka, która może wybrać sekwencję algorytmu ALG . W zależności od tego, czy zmienić w oparciu o strategię , przeciwnicy otrzymują różne uprawnienia, a wydajność ALG jest mierzona w stosunku do tych przeciwników.

Nieświadomy przeciwnik musi całą sekwencję żądań uruchomieniem cenę w trybie offline , z

Adaptacyjny przeciwnik online może wykonać następne żądanie w oparciu o poprzednie wyniki algorytmu online, ale płaci za żądanie optymalnie i online.

Adaptacyjny przeciwnik offline może wykonać następne żądanie w oparciu o poprzednie wyniki algorytmu online, ale płaci optymalny koszt offline.

Algorytmy offline

Analiza konkurencji dla wielu problemów z aktualizacją list została przeprowadzona bez konkretnej wiedzy na temat dokładnej natury optymalnego algorytmu offline (OPT). Istnieje algorytm działający w czasie O( n 2 l ( l -1)!) i przestrzeni O ( l !), gdzie n to długość sekwencji żądań, a l to długość listy. Najbardziej znany optymalny algorytm offline zależny od długości sekwencji żądań działa w czasie O(l^2(l−1)!n) opublikowany przez dr Srikrishnana Divakarana w 2014 roku.

Płatne transpozycje są na ogół niezbędne dla optymalnych algorytmów. Rozważmy listę ( a , b , c ), gdzie a znajduje się na początku listy, oraz sekwencję żądań c , b , c , b . Optymalny algorytm offline korzystający tylko z bezpłatnych wymian kosztowałby 9 (3+3+2+1), podczas gdy optymalny algorytm offline wykorzystujący tylko płatne wymiany kosztowałby 8. Nie możemy więc uciec od korzystania tylko z bezpłatnych transpozycji dla optymalnego algorytmu offline .

Problem aktualizacji optymalnej listy okazał się NP-trudny przez ( Ambühl 2000 ) .

Algorytm online

Algorytm online ALG ma współczynnik konkurencyjności c , jeśli dla dowolnego wejścia działa co najmniej tak dobrze, jak c razy gorzej niż OPT. tj jeśli istnieje taki że dla wszystkich sekwencji żądań skończonej . Algorytmy online mogą być deterministyczne lub losowe i okazuje się, że w tym przypadku randomizacja może naprawdę pomóc w walce z nieświadomymi przeciwnikami.

deterministyczny

Większość algorytmów deterministycznych to warianty tych trzech algorytmów:

MTF (Przenieś na początek)
Po uzyskaniu dostępu do elementu przenieś go na początek listy bez zmiany kolejności innych elementów
TRANS (Transponuj)
Po uzyskaniu dostępu do elementu transponuj go z elementem bezpośrednio poprzedzającym.
FC (Frequency Count)
Dla każdego elementu utrzymuj częstotliwość dostępu do niego - gdy element jest uzyskiwany, zwiększ jego liczbę częstotliwości i zmień kolejność listy w malejącej kolejności częstotliwości.

Zauważ, że wszystkie one używają tylko wolnych transpozycji. Okazuje się, że zarówno TRANS, jak i FC nie są konkurencyjne. W klasycznym wyniku przy użyciu metody analizy potencjału ( Sleator & Tarjan 1985 ) udowodniono, że MTF jest 2-konkurencyjna. Dowód nie wymaga jawnej znajomości OPT, lecz zlicza liczbę inwersji, czyli elementów występujących w przeciwnej kolejności na listach MTF i OPT.

algorytm deterministyczny ma dolną granicę dla listy o długości rzeczywistości optymalnym deterministycznym algorytmem aktualizacji Typ przeciwnika nie ma znaczenia w przypadku algorytmów deterministycznych, ponieważ przeciwnik może samodzielnie uruchomić kopię algorytmu deterministycznego, aby wstępnie obliczyć najbardziej katastrofalny ciąg.

Randomizowane

Rozważ następujący prosty losowy algorytm:

BIT
Dla każdego elementu na liście zachowaj bit. Zainicjuj wszystkie bity równomiernie i losowo na 0 lub 1. Gdy element jest dostępny, odwróć bit, a jeśli jest to 1, przesuń go na przód, w przeciwnym razie nie.

Ten algorytm jest prawie losowy - wszystkie losowe wybory dokonuje na początku, a nie w trakcie biegu. Okazuje się, że BIT przełamuje deterministyczną granicę - jest lepszy niż MTF przeciwko nieświadomym adwersarzom. Jest konkurencyjny 7/4. Istnieją inne losowe algorytmy, takie jak COMB, które działają lepiej niż BIT. Boris Teia wykazał dolną granicę 1,5 dla dowolnego algorytmu aktualizacji losowej listy.

Powiązane problemy

Problem z aktualizacją listy, w którym elementy mogą być wstawiane i usuwane, nazywany jest problemem z aktualizacją listy dynamicznej, w przeciwieństwie do problemu z aktualizacją listy statycznej, w którym dozwolony jest dostęp tylko do elementów listy. Górna modelu

Istnieją również różne modele kosztów. W zwykłym modelu kosztów pełnych dostęp do elementu znajdującego się na pozycji i kosztuje i , ale ostatnie porównanie jest nieuniknione dla każdego algorytmu, tzn. na drodze do i stoi i-1 elementów . W modelu kosztów częściowych te końcowe koszty porównania, sumujące się do liczby elementów w sekwencji żądań, są ignorowane. Dla kosztów płatnych transpozycji innych niż jedność stosuje się modele P d .

Zobacz też

Notatki

  • Ambühl, C. (2000), Aktualizacja listy offline jest np-trudna , Springer, s. 42–51