Odcisk palca dla zestawów dynamicznych


10

Czy istnieje w-bitowa struktura danych słowo-RAM z czasem O (1) na operację dla następującego problemu ?: Utrzymanie zestawu w-bitowych nieujemnych liczb całkowitych, które obsługują operacje

  • add (x): dodaj x do zestawu
  • remove (x): usuń x z zestawu
  • odcisk palca (): zwraca odcisk palca zestawu. Ten w-bitowy odcisk palca ma właściwość polegającą na tym, że dwa identyczne zestawy mają ten sam odcisk palca, podczas gdy dwa różne zestawy prawdopodobnie mają różne odciski palców

Wszystkie operacje powinny przebiegać w stałym czasie.

Schemat linii papilarnych Rabin-Karp, w którym gdzie p jest losową liczbą w-bitową, prawie działa. Problem dotyczy czasu aktualizacji, ponieważ obliczenie 2 ^ x \ bmod p zajmuje więcej niż stały czas. Za pomocą powtarzania kwadratu można to zrobić w czasie O (log w). Najszybszy modułowy algorytm potęgowania, jaki udało mi się znaleźć, wykonuje operacje arytmetyczne (log w) / (loglog w).

fa(S.)=(xS.2)x)modp
2)xmodp

3
Widzę, że podobne pytanie zostało już tutaj opublikowane , ale nie podano rozwiązania w stałym czasie.
Pat Morin

Odpowiedzi:


1

Ta odpowiedź jest nieco niepewna.

Wybierz funkcję równomiernie losowo z zestawu wszystkich funkcji od słów w-bitowych do słów w-bitowych. Dla każdego zestawu zachowaj odcisk palca w-bit w następujący sposób:h

  1. Pusty zestaw ma odcisk palca 0.
  2. dodaj (x) i usuń (x) zaktualizuj odcisk palca do , gdzie to xor.fafah(x)

Niech będzie dwoma zestawami liczb całkowitych w-bitowych. Jeśli ich odciski palców są takie same, to odcisk palca , symetryczna różnica i , wynosi 0, co dzieje się z prawdopodobieństwem .S.T.S.T.S.T.2)-w


W praktyce można utworzyć instancję z funkcją pseudolosową (PRF) z kryptografii - np. Coś opartego na AES. Powinien być bardzo wydajny, a otrzymasz silne obietnice, że zadziała (chyba że krypto jest zepsute). h
DW
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.