Haszowanie 2-wyborowe

Mieszanie 2-wyborów , znane również jako łączenie 2-wyborów , to „wariant tablicy mieszającej , w której klucze są dodawane przez mieszanie z dwiema funkcjami mieszającymi . Klucz jest umieszczany w pozycji tablicy z mniejszą liczbą (kolidujących) kluczy. Niektóre potrzebny jest schemat rozwiązywania kolizji , chyba że klucze są przechowywane w zasobnikach. Średni koszt udanego wyszukiwania to , gdzie liczba kluczy, a to rozmiar tablicy. Najwięcej kolizji to z dużym prawdopodobieństwem."

Jak to działa

Haszowanie 2-wyborowe wykorzystuje dwie funkcje haszujące h 1 ( x ) i h 2 ( x ), które działają tak, jak oczekuje się od funkcji mieszających (tj. odwzorowują liczby całkowite z wszechświata na określony zakres). Dwie funkcje skrótu powinny być niezależne i nie mieć ze sobą korelacji. Posiadanie dwóch funkcji skrótu pozwala każdemu kluczowi x mieć do dwóch potencjalnych lokalizacji do przechowywania w oparciu o wartości odpowiednich wyjść, h 1 ( x ) i h 2 ( x ). Należy zauważyć, że chociaż istnieją dwie funkcje skrótu, istnieje tylko jedna tabela; obie funkcje skrótu odwzorowują lokalizacje w tej tabeli.

Realizacja

Najważniejszymi funkcjami implementacji haszującej w tym przypadku są wstawianie i wyszukiwanie.

  • Wstawianie: podczas wstawiania wartości obu funkcji skrótu są obliczane dla obiektu, który ma zostać wstawiony. Obiekt jest następnie umieszczany w wiadrze, który zawiera mniej obiektów. Jeśli zasobniki są równej wielkości, domyślną lokalizacją jest h 1 ( x ).
  • Wyszukiwanie: Skuteczne wyszukiwanie polega na wyszukiwaniu żądanej wartości w obu zasobnikach (lokalizacjach zasobników, do których odwzorowano h 1 ( x ) i h 2 ( x )).

Wydajność

Podobnie jak w przypadku wszystkich tablic mieszających, wydajność jest oparta na największym wiadrze. Chociaż istnieją przypadki, w których rozmiary zasobników są duże w oparciu o wartości i użyte funkcje skrótu, jest to rzadkie. Posiadanie dwóch funkcji skrótu, a zatem dwóch możliwych lokalizacji dla dowolnej wartości, sprawia, że ​​możliwość wystąpienia dużych zasobników jest jeszcze mniej prawdopodobna.

Oczekiwany rozmiar zasobnika podczas korzystania z haszowania z dwoma wyborami to: θ (log(log( n ))) . Ta poprawa wynika z losowej koncepcji znanej jako The Power of Two Choices.

Użycie dwóch funkcji skrótu zapewnia znaczne korzyści w porównaniu z pojedynczą funkcją skrótu. Istnieje niewielka poprawa (i brak zmian w oczekiwanych statystykach zamówień), jeśli używane są więcej niż dwie funkcje skrótu: „Dodatkowe funkcje skrótu zmniejszają maksimum tylko o stały współczynnik”.

w niektórych pamięciach podręcznych procesora typ mieszania 2-wyborowego, zwany dwukierunkową skośną asocjacyjną pamięcią podręczną .

Mieszanie 2-lewe - przy użyciu dwóch tablic mieszających o równym rozmiarze n / 2 i asymetryczne rozwiązywanie powiązań przez umieszczenie klucza w lewej tablicy mieszającej - ma mniej kolizji, a zatem lepszą wydajność niż mieszanie 2-wyborowe z jedną dużą tablicą mieszającą o rozmiarze n . [ potrzebne pełne cytowanie ]

Public Domain Ten artykuł zawiera materiały należące do domeny publicznej autorstwa Paula E. Blacka. „Haszowanie z dwoma wyborami” . Słownik algorytmów i struktur danych . NIST .

Dalsza lektura