기수 트리와 패트리샤 시도의 차이점은 무엇입니까?


31

나는 기수 나무 (일명 압축 시도)에 대해 배우고 있지만 Patricia는 시도하지만 실제로 동일한 지 여부에 대한 상충되는 정보를 찾고 있습니다. 노드가 유일한 자식 일 때 부모와 노드를 병합하여 일반 (압축되지 않은) 트리에서 기수 트리를 얻을 수 있습니다. 패트리샤도 마찬가지다. 두 가지 데이터 구조는 어떤면에서 다른가?

예를 들어 NIST 는 둘을 동일하게 나열합니다.

패트리샤 트리

(데이터 구조)

정의 : 유일한 자식 인 노드가 부모와 병합되는 trie의 간단한 표현.

기수 트리라고도합니다.

웹상의 많은 출처가 동일하다고 주장합니다. 그러나 패트리샤는 기수 나무의 특별한 경우입니다. 위키 백과 입장은 말합니다 :

PATRICIA 시도는 기수가 2 인 기수 시도입니다. 즉, 키의 각 비트가 개별적으로 비교되고 각 노드는 양방향 (즉, 왼쪽 대 오른쪽) 분기입니다.

나는 이것을 정말로 이해하지 못한다. 조회를 수행 할 때 비교하는 방식 만 차이가 있습니까? 각 노드는 어떻게 "양방향 브랜치"가 될 수 있습니까? 이 기껏해야하지 ALPHABET_SIZE주어진 노드의 수 가지?

누군가 이것을 명확히 할 수 있습니까? 실제적인 목적으로, 패시브 시도는 일반적으로 Patricia 시도와 같이 구현됩니까 (따라서 종종 같은 것으로 간주됩니까)? 아니면 그러한 일반화를 할 수 없습니까?

답변:


22

게시물이 매우 유용 하다는 것을 알았 습니다.

패트리샤 시도와 기수 나무의 차이점을 보려면 다음을 이해하는 것이 중요합니다.

  • 패트리샤가 기수를 2로하는 기수 나무이기 때문에 기수 의 개념 .
  • 키가 처리되는 방식 : 비트 스트림 . 키는 한 번에 비트로 비교 되며 여기서 은 trie의 기수입니다.아르 자형2아르 자형

Patricia 트리에 smile , smiledsmiles (이 순서대로) 키를 삽입한다고 가정하십시오 . 이 키의 이진 표현은 다음과 같습니다.

세 가지 예제 키의 이진 표현

유의 미소 의 접두사 지었다 이진 표현을 분석하고, 우리가 볼 수있는 첫 번째 비트 (좌측에서 우측)이 다르다 있음 0 (2 행째 빨간색으로 표시); 이러한 이유로, 미소 될 것입니다 왼쪽 아이미소 . 마찬가지로, 미소 것이다 오른쪽 아이지었다 들은 값이되는 비트가 동일한 프리픽스를 공유하기 때문에 1 (세 번째 행에서 적색으로 표시). 세 개의 키를 삽입 한 결과 패트리샤는 다음과 같습니다.

3 노드를 가진 패트리샤 트리

기수가 예를 들어 4 인 경우 내부 노드에는 최대 4 개의 자식이있을 수 있습니다 (가장자리가 각각 00, 01, 10 및 11로 표시됨). 이 경우 키는 1이 아닌 2 비트 청크로 비교됩니다 (패트리샤가 시도한 것처럼).


두 가지 데이터 구조는 어떤면에서 다른가?

내 이해에 따르면, 유일한 차이점은 기수이며 패트리샤 시도의 경우 2와 같습니다. 이 값은 일반 기수 트리에서 2의 거듭 제곱이 될 수 있습니다.

조회를 수행 할 때 비교하는 방식 만 차이가 있습니까?

로그2아르 자형아르 자형

각 노드는 어떻게 "양방향 브랜치"가 될 수 있습니까? 이 기껏해야하지 ALPHABET_SIZE주어진 노드의 수 가지?

기수는 기수 트리의 노드가 가질 수있는 최대 하위 수를 설정합니다. 예를 들어 기수 = 2 인 경우 각 노드는 최대 2 개의 하위를 가질 수 있습니다. 이것은 패트리샤 시도 (이진 기수 트리라고도 함)의 경우입니다.

기수 시도는 일반적으로 Patricia가 시도하는 것처럼 구현됩니까 (따라서 종종 같은 것으로 간주 됨)? 아니면 그러한 일반화를 할 수 없습니까?

솔직히이 질문에 대한 답이 없습니다. 두 데이터 구조가 서로 다른 저자들에 의해 같은 시간에 제안 된 것 같습니다. 내가 알지 못하는 역사적 이유로 인해 두 용어는 여전히 오늘날에도 존재합니다.


3

패트리시아 트리는 PATRICIA 알고리즘을 알프 노머 데이터에 적용한 결과 이진 기수 트리입니다.

PATRICIA는 영숫자 [ Donald R. Morrison의 원본 논문 ]으로 코딩 된 정보를 검색 하는 실용적인 알고리즘을 나타냅니다 . 이 백서는 START, STOP, END, L-PHRASE, BRANCH, TWIN 및 CHAIN으로 구성된 기본 어휘를 정의합니다. 패트리샤 시도는이 알고리즘의 적용으로부터 결과하는 시도이다 - 기수, R은이며, 이진 트리는 기수 2 위키 (위); 트라이를 순회 할 때 각 노드에서 이진 선택).

그러나 실제로 Patricia라는 용어는 유사한 저장 및 검색 알고리즘이 사용되는 r> = 2 (즉 기수 시도)와 함께 사용되는 것 같습니다. 예를 들어 이것은 패트리샤로 표기된다. 에테 리움 패트리샤는 Merkle 트리는는 r은 특정 노드에서 16 또 다른 예이다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.