AOP_Tom3 (1021738), страница 153

Файл №1021738 AOP_Tom3 (Полезная книжка в трёх томах) 153 страницаAOP_Tom3 (1021738) страница 1532017-07-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 153)

(Например, если М простое число, то Ьв(К) может быть любой величиной от 1 до М вЂ” 1 включительно; или, если М = 2'", Ьз(К) может быть любым нечесаным числом от 1 до 2"' — 1.) П1. [Первое хеширование.] Установиты +- 61(К). 1У2. (Первая проба.] Если ТАВ1.Е[П пуст, перейти к шагу ТУ6. В противном случае, если КЕТ[П = К, алгоритм завершается успешно. 1УЗ. [Второе хеширование.] Установить с в- Ьа(К). В4. [Переход к следующему.) Установиты +- 1 — с; если после этого 1 ( О, установить 1+- э + ЛЬ Т15. [Сравнение.) Если ТАВЬЕ[П пуст, перейти к шагу 1У6.

В противном случае, если КЕТ[П = К, алгоритм завершается успешно; иначе — вернуться к шагу П4. П6. [Вставка.] Если У = М вЂ” 1, выполнение алгоритма прекращается в связи с переполнением. В противном случае установить гУ в- Л1 + 1, пометить узел ТАВЬЕ[з) как занятый и установить КЕТЫ +- К. $ (25) с двойным хешированием), Поскольку эта 1. она представлена здесь без комментариен. Программа 1) (Рткрытоя адресация программа очень похожа на программу В программе г12 = с — 1.

01 ЯТАНТ ЕОХ К ОЯ ЕМТА 0 ОЮ 017 =М= 04 ЯТХ в+1(0:2) Об ЕМТ1 ь Об ЮХ ТАВОТЕ,1 07 СМРХ К Об ЗЕ ЯОССЕЯЯ 00 дХЕ 4Р А — 51 А — 51 А — 51 А — 51 А — 51 С вЂ” 1 С вЂ” 1 В С вЂ” 1 10 ЯНАХ 11 017 1О ЯТХ 1У ЕМТ2 Ц 1.0А 1Б ЗН ОЕС1 10 д1ММ !7 1МС1 10 СМРА 5 =М-2= в+1(0:2) К 1,2 9+2 М ТАВЕЕ,1 Дня вычисления Ь (К) было предложено несколько различных вариантов. Если М вЂ” простое числа и !И(К) = К шос1 М, можно положить !гт(К) = 1+ (Кшоб (М вЂ” 1)); однако, поскольку ЛХ вЂ” 1 четно, была бы лучше положить Ьз(К) = 1+ (К пюб (ЛХ вЂ” 2)).

Это приводит к мысли о таком выборе М, что ЛХ и М вЂ” 2 были "простыми близнецами" наподобие 1021 и 1019. Кроме тога, можно взять Ьз(К) = 1+ ((К/М) шоб (М вЂ” 2)) в связи с тем, что частное (К/ЛХ) молсет быть получено в регистре как побочный резу.льтат вычисления !н (К). Если М = 2 и используется мультипликативное хеширование, !гт(ХХ) может быть вычислена методом простого сдвига на т дополнительных битов влево с выполнением операции "ИЛИь с 1, так чта к последовательности команд (5) необходимо добавить следующее. ЕМТА 0 Очистить гА Бьн ш Сдвинуть гАХ на тп бит влево.

(24) Ок 1 гА < — гАу! 1. Эти операции выполняются быстрее метода деления. В каждом из предложенных выше метадон !В(К) и Ьо(К) существенно независимы — в том смысле, что для различных ключей вероятность совпадения Ь~ и Ьз пропорциональна 1/Мэ, а не 1/М. Эмпирические тесты показывают, что число проб в алгоритме В с независимыми хеш-функциями неотличимо от числа проб, требующихся при случайной вставке ключей в таблицу; в этой ситуации практически отсутствует "окучивание", или "кластеризация", как в алгоритме Е.

Можно также допустить зависимость 6з(К) от 6~(К), как было предложено Гари Кноттом (Сагу Кпом) в 1968 году; например, при простом М можно положить ~2( ) если !и(К) = 0; М вЂ” Ь,(К), если Ь!(К) > О. Этот метод выполняется быстрее повторного делении, однако он вызывает определенную вшоричную кластеризацию, что приводит к небольшому увеличению числа проб из-за повышения вероятности того, что два или несколько ключей пойдут по одному и тому же пути. Выведенные ниже формулы могут использоваться для определения того, превышает ли выигрыш во времени хеширования потери времени на дополнительных пробах.

Алгоритмы Е и В очень похожи, однако между ними найдется достаточно различий, чтобы было полезно сравнить время работы соответствующих И1Х-программ. 12 1Е ВОССЕВВ С - 1 20 ООХ ТАВОТЕ,1 С вЂ” 1 — 52 21 ЮХИЕ ЗВ С вЂ” 1 — 52 22 4Н СОХ ЧАСАИС1ЕБ 1 — 5 22 ЛХЕ ОУЕКРЕОИ 1 — 5 ОЕСХ 1 1 — 5 ЯТХ ЧАСАИС165 1 — 5 ООА К 1 — 5 ЯТА ТАВ1.Е,1 1 — 5 ! 24 25 26 27 Счетчики частот А, С, 51, 52 здесь имеют тот же смысл, что и в программе С, приведенной выше. Еще одна переменная, В, в среднем примерно равна (С вЂ” 1)/2 (если ограничить диапазон значений Ья(К) да, скажем, 1 < Ьз(К) < М/2, В уменьшится до (С вЂ” 1)/4; такое увеличение скорости, вероятно, не компенсируется заметным увеличением числа проб). Если в таблице )Ч = аМ ключей, среднее значение А, конечна, равно а при неудачном поиске и А = 1' — в случае поиска успешного.

Как и в алгоритме С, среднее значение 51 при успешном поиске составляет 1 — -'((и†1)/М) я~ 1- $о. Среднее число проб трудно установить точно, однако эмпирические тесты показывают хорошую согласованность с формулами, выведенными ниже для "равномерного исследования' при независимых Ьс(К) и Ьз(К): (1 — а) ' (неудачный поиск), (26) М+1 — Х АХ+ 1 См = (Нмч~ — Нмчс-м) — а ~ 1п(1 — а) (успешный поиск). (27) 1Ч Если Ьз(К) зависит от 10(К) согласно (25), вторичная кластеризация увеличивает (26) и (27) до Л4+ 1 Дт См = — +Н вЂ” Н -О(М ') М+1 — и М+1 - (1 — а) ' — а — 1п(1 — о), (28) -1 См — 1+Нмьс Нмз-~-м (Нм-.с Нм-,~ — л)/57+С(Н ) 2(М+ 1) 1 1п(1 а) за (29) ЕИИ2 1-М,1 с+- М вЂ” О 11ИЕ в+2 (30) ЕИТ2 0 Если1= О, сс — 1.

Программа П требует в целом 8С+ 19А+ В+ 26 — 135 — 1751 единиц времени; моди- фикация (30) позволяет сохранить около 15(А — 5Ц - 7.5а времени при успешном завершении поиска. В данном случае вторичная кластеризация предпочтительнее независимого двойного хеширования. (см. упр. 44). Заметим, что при заполнении заблипы данные значения См стремятся к Нмзл — 1 и Нмт, —; соответственно; зто существенно лучше, чем прн 1 использовании алгоритма Е, но не так хорошо, как в методе цепочек.

Поскольку каждая проба в алгоритме Е отнимает немного меньше времени, двойное хеширование дает выигрыш талька прн заполненной таблице. На рис. 42 сравниваются средние значения времени работы программ Е, 0 и модифицированной программы Р (эта модификация влечет за собой вторичное окучивание; сама модификация сводится к замещению медленного вычисления Ьз(К) в строках 10-13 следующими командами. 40и 3 и Зоо и $ 20о Ж гби Ои 0 0.1 0 2 О.З 0.4 0.5 О.б 0 7 0.8 0.9 1.О Коэффициент эаполиеииоети, о = А7М Рис. 42.

Время успешного поиска трех схем открытой адресации. На двоичном компьютере можно было бы увеличить скорость вычисления йэ (К) другим путем — заменив (если М вЂ” простое число, болыпее, чем, скажем, 512) строки 10 — 13 строками А14Р =511= гА е — гА шог1 512. 3ТА и+1(0:2) (31) ЕиТ2 и е е-гА+1. Эта идея (предложенная Беллом (Ве!1) и Каманом (Кашап), САСМ 13 (1970), 675 — 677, которые независимо открыли алгоритм 1)) позволяет избежать вторичной кластеризации без затрат на повторное деление. Для улучшеяия алгоритма Ь было предложено много других последовательностей проб, но ни одна из них не превосходит алгоритм П (за исключением, возможно, метода, описанного в упр. 20).

Используя относительный порядок ключей, можно уменьшить среднее время работы при неудачном поиске согласно алгоритму Ь или !) до среднего времени работы при успешном поиске (см. упр. 66). Эта технология может с успехом применяться для решения задач, в которых неудачный поиск — обычное явление, более частое, чем поиск успешный; например, ТЕХ использует такой алгоритм при поиске исключений из своих правил переноса. Изменение Брента. Ричард П. Брент (ЖсугаЫ Р. Вгепб) открыл такой способ модификации алгоритма П, при котором среднее время успешного поиска остается ограниченным при заполнении таблицьь Его метод (СЛСМ 16 (1973), 105 — 109] основан на том факте, что обычно успешный поиск встречается горазда чаще вставок, а потому его предложение сводится к переносу основной работы на вставку элемента путем такого перемещения записей, чтобы уменьшилось ожидаемое время выборки.

Например, на рис. 43 показано, сколько раз каждый идентификатор встречался в типичной процедуре РЬ/1. Эти данные указывают на го, что компилятор РЬ/1, который использует хеш-таблицу для хранения имен переменных, будет обращаться к ней за многими именами пять и более раз, вставляя их всего однажды. В подобном исследовании Белл и Каман обнаружили, что компилятор СОВОЬ использовал свой 25 1а о ы ь ы ы Н т ь ы ы ы ы ы ыь в $ М Н ь ы нь ы ь п н ы й ы ~ ч ыо Рнс.

43. Количество поисков имен переменных компилятором в типичном етучве. Имена перечислены слева направо в порядке нх первого появлення в программе. табличный алгоритм при компиляции 10988 раз, в то время как было сделано только 735 вставок в таблицу; следовательно, на одну вставку приходилось около 14 успешных поисков. Иногда таблина создается только один раз (например, таблица символов кодов операций в ассемблере) и используется исключительна для получения нз нее данных.

Идея Брента заключается в изменении процесса вставки в алгоритме Р, как показано ниже. Предположим, что при неудачном поиске были проверены ячейки ро, рм ..., р... ре, где рх —— (Ь1(К) — ХЬг(К)) лют М н ТАВ1.Е[р~] пуст. Если 1 < 1, вставляем К в позицию рн как обычно; однако, если 1 > 2, вычисляем се = Ьт(Ке), где Ке = КЕТ[ре], и смотрим, свободен ли узел ТАВЬЕЦро — со) шоб М]. Если зто так, помещаем в него ТАВЬЕ[ро], а затем вставляем К в позицию ро. Это приводит к увеличению времени выборки Ко на один шаг, но время выборки К уменьшается на 1 > 2 шагов, что приводит к общему выигрышу во времени выборки. Лналогично, если узел ТАВЬЕЦро — со) шоб М] занят н 1 > 3, проверяем узел ТАВ1.ЕЦре — 2со) пюб М]; если он также занят, вычисляем с, = Ьт(КЕУ[р,) ), провернем ТАВ|ЕЦро — с~) шай ЛХ] и т.

Характеристики

Тип файла
DJVU-файл
Размер
10,16 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6549
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее