Яка різниця між радіаційними деревами і Патрісія намагається?


31

Я дізнаюся про дерева радіації (він же стискається) і Патріція намагається, але я знаходжу суперечливу інформацію про те, чи є вони насправді чи ні. Дерево з радіацією може бути отримане від звичайного (нестисненого) трійника шляхом злиття вузлів з батьками, коли вузли є єдиною дитиною. Це також стосується спроб Патриції. Чим відрізняються дві структури даних?

Наприклад, NIST перераховує ці два як однакові:

Дерево Патриції

(структура даних)

Визначення: Компактне представлення трие, в якому будь-який вузол, який є єдиною дитиною, об'єднується зі своїм батьківським.

Також відоме як дерево радіакс.

Багато джерел в Інтернеті стверджують те саме. Однак, мабуть, Патрісія намагається - це особливий випадок радіаційного дерева. Запис у Вікіпедії :

PATRICIA намагається радіаційні спроби з радіасом, рівним 2, що означає, що кожен біт ключа порівнюється індивідуально, і кожен вузол є двосторонньою (тобто лівою та правою) гілкою.

Я не дуже цього розумію. Чи є різниця лише в тому, як проводиться порівняння при проведенні перевірок? Як кожен вузол може бути "двосторонньою гілкою"? Чи не повинно бути не більшеALPHABET_SIZE можливих гілок для даного вузла?

Хтось може це уточнити? Для практичних цілей, як правило, реалізуються спроби радіації, як це намагається Патрісія (і, отже, часто вважаються однаковими)? Або не можна робити таких узагальнень?

Відповіді:


23

Я це знайшов публікацію дуже корисною.

Щоб побачити різницю між спробами Патрісія та радіацією дерев, важливо зрозуміти:

  • Поняття про радіус , оскільки Патріція намагається - це радіаційні дерева з радіасом, рівним 2.
  • r2r - радіус трие.

Припустимо, що ми вставляємо клавіші посмішкою , посмішкою та усмішками (у цьому порядку) у трійці Патріції. Двійкове представлення цих клавіш таке:

Двійкове представлення трьох прикладних клавіш

Зверніть увагу , що посмішка є префіксом посміхнулася , і, аналізуючи двійкове подання, ми можемо бачити , що перший біт , який відрізняється (зліва направо) в 0 (виділено червоним у другому ряду); З цієї причини, посміхнувся буде зліва дитина від посмішки . Точно так же, посмішка буде правий нащадок з посміхнувся , бо вони мають однаковий префікс до біта, значення якого 1 (виділено червоного кольору в третьому ряду). Отримане триє Патрісія після вставлення трьох клавіш виглядає наступним чином:

Патріція триє з 3 вузлами

Якщо в радіусі було, наприклад, 4, то внутрішні вузли могли мати, максимум, чотирьох дітей (з їх краями позначено відповідно 00, 01, 10 та 11). У цьому випадку ключі порівнювали б шматками в 2 біти, а не 1 (як це намагається Патрісія).


Чим відрізняються дві структури даних?

Наскільки я розумію, єдина відмінність - це радікс, який дорівнює 2 у випадку спроб Патриції. У звичайних деревах радіації ця величина може бути дорівнює 2 потужностей.

Чи є різниця лише в тому, як проводиться порівняння при проведенні перевірок?

В обох структурах даних операція порівняння є побітною. Однак кількість бітів, які перевіряються атомно, змінюється залежно від радіусу. У випадку спроби Патрісія біти порівнюються індивідуально (оскільки радікс = 2). Це необов'язково має місце у деревах, що діють радіаційно. Загалом, біти перевіряються шматками розміружурнал2R, де R - радіація трійця.

Як кожен вузол може бути "двосторонньою гілкою"? Чи не повинно бути максимум ALPHABET_SIZEможливих гілок для даного вузла?

Радіакс встановлює максимальну кількість дітей, яку можуть мати вузли дерева радіації. Наприклад, коли radix = 2, кожен вузол може мати максимум двох дітей. Це справа Патрісії (також відома як двійкові дерева радіації).

Чи спроби радикса типово реалізуються як спроби Патрісії (і, отже, часто вважаються однаковими)? Або не можна робити таких узагальнень?

Якщо чесно, у мене немає відповіді на це питання. Схоже, обидві структури даних були запропоновані приблизно в один і той же час різними авторами. З історичних причин, про які я не знаю, обидва терміни живуть і сьогодні.


3

Трієць Патріція - це двійкове радіальне трие, отримане в результаті застосування алгоритму PATRICIA до алфавітно-цифрових даних.

PATRICIA означає Практичний алгоритм для отримання інформації, кодованої буквено-цифровою формою [ оригінальний документ Дональда Р. Моррісона ]. У статті визначено основний словниковий запас, що складається з START, STOP, END, L-PHRASE, BRANCH, TWIN та CHAIN. Спроби PATRICIA - це спроби, які є результатом застосування цього алгоритму - бінарний радіакс намагається, де радікс, r, 2 [ wikipedia ] (і вище); двійковий вибір на кожному вузлі при обході трійки).

Однак на практиці термін Патріція, здається, вживається з r> = 2 (тобто радіопроб), де використовується аналогічний запам'ятовуючий і пошуковий алогіоритм. Наприклад, це називається патрицією. Ethereum Patricia Merkle Trie ще один приклад, де г 16 в певних вузлах.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.