SUHA (компьютерные науки)

В информатике SUHA ( Simple U niform H ashing A ssumption) — это базовое предположение , которое облегчает математический анализ хэш-таблиц . Это предположение утверждает , что гипотетическая функция хэширования равномерно распределит элементы по слотам хэш-таблицы. Более того, каждый элемент, который должен быть хэширован, имеет равную вероятность быть помещенным в слот, независимо от других уже размещенных элементов. Это предположение обобщает детали хэш-функции и допускает определенные предположения о стохастической системе.

Приложения

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

Математические импликации

Некоторые свойства хеш-таблиц можно вывести, если предположить равномерное хеширование.

Равномерное распределение

При условии равномерного хеширования, учитывая хеш-функцию h и хеш-таблицу размера m , вероятность того, что два неравных элемента будут хешироваться в один и тот же слот, равна

П ( час ( а ) = час ( б ) ) = 1 м . {\displaystyle P(h(a)=h(b))={\frac {1}{м}}.}

Длина цепочки столкновений

При условии равномерного хеширования коэффициент загрузки и средняя длина цепочки хеш-таблицы размера m с n элементами будут равны α {\displaystyle \альфа}

α = н м {\displaystyle \альфа ={\tfrac {n}{м}}}

Успешный поиск

При условии равномерного хеширования среднее время (в нотации «большое О» ) успешного поиска элемента в хеш-таблице с использованием цепочки равно

О ( α + 1 ) {\displaystyle O(\alpha +1)\,}

Неудачный поиск

При условии равномерного хеширования среднее время (в нотации «большое О») безуспешного поиска элемента в хеш-таблице с использованием цепочки равно

О ( α + 1 ) {\displaystyle O(\alpha +1)\,}

Пример

Простой пример использования SUHA можно увидеть при наблюдении за произвольной хэш-таблицей размером 10 и набором данных из 30 уникальных элементов. Если для решения проблем с коллизиями используется цепочка, средняя длина цепочки этой хэш-таблицы может быть желаемым значением. Без каких-либо предположений и без дополнительной информации о данных или хэш-функции длина цепочки не может быть оценена. Однако с SUHA мы можем утверждать, что из-за предполагаемого равномерного хэширования каждый элемент имеет равную вероятность сопоставления со слотом. Поскольку ни один конкретный слот не должен быть предпочтительнее другого, 30 элементов должны хэшироваться в 10 слотов равномерно. Это создаст хэш-таблицу, в среднем, с 10 цепочками каждая длиной 3

α = н м {\displaystyle \альфа ={\tfrac {n}{м}}}
α = 30 10 {\displaystyle \alpha = {\tfrac {30}{10}}}
α = 3 {\displaystyle \альфа =3\,}

Смотрите также

Ссылки

Общий

Retrieved from "https://en.wikipedia.org/w/index.php?title=SUHA_(computer_science)&oldid=994464722"