Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

2-выбор хеширования , также известный как 2-выбор логического вывода , является «вариант хэш - таблицы , в которой ключи добавляют хеширования с двумя хеш - функций . Ключ помещается в позицию массива с помощью клавиш меньше (сталкивающихся). Некоторые Схема разрешения коллизий необходима, если ключи не хранятся в корзинах. Средняя стоимость успешного поиска равна , где - количество ключей, а - размер массива. Большинство коллизий с высокой вероятностью ». [1]

Как это работает [ править ]

Хеширование с двумя вариантами использует две хэш-функции h 1 ( x ) и h 2 ( x ), которые работают как ожидаемые хэш-функции (т. Е. Отображение целых чисел из вселенной в указанный диапазон). Две хеш-функции должны быть независимыми и не коррелировать друг с другом. Наличие двух хеш-функций позволяет любому ключу x иметь до двух потенциальных местоположений для хранения на основе значений соответствующих выходов, h 1 ( x ) и h 2 ( x). Важно отметить, что, хотя есть две хэш-функции, есть только одна таблица; обе хэш-функции сопоставляются с местоположениями в этой таблице.

Реализация [ править ]

Наиболее важными функциями реализации хеширования в этом случае являются вставка и поиск.

  • Вставка: при вставке значения обеих хеш-функций вычисляются для вставляемого объекта. Затем объект помещается в ведро, которое содержит меньше объектов. Если сегменты равны по размеру, по умолчанию используется значение h 1 ( x ).
  • Поиск: эффективный поиск выполняется путем поиска нужного значения в обоих сегментах (местоположениях сегментов, которым сопоставлены h 1 ( x ) и h 2 ( x )).

Производительность [ править ]

Как и все хеш-таблицы, производительность основана на самом большом сегменте. Хотя бывают случаи, когда размер сегмента оказывается большим в зависимости от используемых значений и хэш-функций, это случается редко. Наличие двух хэш-функций и, следовательно, двух возможных местоположений для любого одного значения делает вероятность появления больших корзин еще более маловероятной.

Ожидаемый размер сегмента при использовании хеширования с двумя вариантами: θ (log (log ( n ))) . Это улучшение произошло благодаря рандомизированной концепции, известной как « Сила двух вариантов» .

Использование двух хеш-функций дает существенные преимущества по сравнению с одной хеш-функцией. Если используется более двух хэш-функций, улучшение (и никаких изменений в статистике ожидаемого порядка) не будет: «Дополнительные хеш-функции уменьшают максимум только на постоянный коэффициент». [2]

Некоторые люди рекомендуют в некоторых кэшах ЦП тип хеширования с двумя вариантами, называемый двусторонним асинхронно-ассоциативным кешем . [3]

2-левое хеширование - использование двух хеш-таблиц равного размера n / 2 и асимметричное разрешение связей путем помещения ключа в левую хеш-таблицу - имеет меньше коллизий и, следовательно, более высокую производительность, чем хеширование с двумя вариантами с одной большой хеш-таблицей размера n. . [4] [ требуется полная ссылка ]

Ссылки [ править ]

  1. ^  Эта статья включает материалы, являющиеся общественным достоянием  из документа NIST Black, Paul E. «Хеширование с двумя вариантами» . Словарь алгоритмов и структур данных .2008. (дата обращения 28.07.2016).
  2. ^ Пол Э. Черный, DADS, извлекаться 29 января 2015.
  3. ^ «Микроархитектура» .
  4. ^  Эта статья включает материалы, являющиеся общественным достоянием  из документа NIST Блэк, Пол Э. «Хеширование с двумя левыми сторонами» . Словарь алгоритмов и структур данных .19 декабря 2012 г. (дата обращения 15.09.2015).

 Эта статья включает материалы, являющиеся общественным достоянием  из  документа NIST :  Black, Paul E. «Хеширование с двумя вариантами» . Словарь алгоритмов и структур данных .

Дальнейшее чтение [ править ]

  • Азар, Йоси; Бродер, Андрей З .; Карлин, Анна Р .; Упфаль, Эли (23–25 мая 1994 г.), «Сбалансированное распределение (расширенная аннотация)» (PDF) , Материалы двадцать шестого ежегодного симпозиума ACM по теории вычислений - STOC '94 , Монреаль, стр. 593–602, CiteSeerX  10.1.1.38.5375 , DOI : 10,1145 / 195058,195412 , ISBN 0897916638, S2CID  1014349
  • Азар, Йоси; Бродер, Андрей З .; Карлин, Анна Р .; Упфаль, Эли (1999), «Сбалансированное распределение» (PDF) , SIAM J. Comput. , 29 (1): 180–200, DOI : 10.1137 / S0097539795288490