1 / 39

Tree-based Search Focused on Red-Black Tree and Trie and Some Fresh Algorithms

Tree-based Search Focused on Red-Black Tree and Trie and Some Fresh Algorithms. Computer Science & Engineering Department 9746079 Bok-Youn Lee 9746080 Sun-oh Choi. INDEX. Tree Historical Overview( 트리 개요 ) 2-3-4 Tree Red-Black Tree Trie Burning Tree Thick Tree

bree-kemp
Download Presentation

Tree-based Search Focused on Red-Black Tree and Trie and Some Fresh Algorithms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tree-based SearchFocused on Red-Black Tree and Trieand Some Fresh Algorithms Computer Science & Engineering Department 9746079 Bok-Youn Lee 9746080 Sun-oh Choi

  2. INDEX • Tree Historical Overview(트리 개요) • 2-3-4 Tree • Red-Black Tree • Trie • Burning Tree • Thick Tree • Conclusion(결론)

  3. Tree Historical Overview • Binary Search Tree(이진검색트리) • AVL Tree • 2-3 Tree • 2-3-4 Tree • Red-Black Tree • Trie

  4. A B C a d b c 2-3-4 Tree • 특성 - 3개의 키값과 4개의 링크를 가짐 - 자료의 개수 N, 트리의 높이 h log4(N) <= h <= log2(N) - 각 외부노드로 가는 경로의 길이 같음 - 검색방법

  5. 2-3-4 Tree • Split(분할) : 삽입시 균형을 유지하기 위해

  6. K K K K L C K L (a) insert K (b) insert L (c) insert C L A C L A C E (e) insert E (d)insertA(분할) C K A E F L (f)insert F(분할) 2-3-4 Tree • Insert

  7. E E C H K C H K A D F G I L A D F I L (a) delete G H E C H K C E K D A D F I L A F I L H H E K K E I L A C D F C D F I L (b) delete A 2-3-4 Tree • Delete ( 빌려오기 & 결합)

  8. 2-3-4 Tree • Conclusion - 균형을 유지하고 구현하기 쉬움 - 대부분의 노드가 2노드로 될때 메모리의 낭비가 있음 - 외부검색인 B-트리로 발전됨

  9. Red-Black Tree • Introduction - 레드블랙트리는 2-3-4트리의 이진표현 - 검색방법은 이진검색트리와 동일

  10. Red-Black Tree • Color Flip(색상변환) & Rotation(회전) - 2-3-4트리에서의 분할에 해당함 H H H F F D D D F B B B A C A C A C ( LL rotation )

  11. K K K L C L (a) insert K (b) insert L (c) insert C K K C L C L A A E (d) color flip & insert A (e) insert E Red-Black Tree • Insert

  12. Red-Black Tree • Conclusion - 자료의 수를 N, 트리의 높이를 h라 할 때 h <= 2log2(N+1) - 2-3-4 트리에 비하여 메모리 절약 - 2-3-4 트리에 비하여 구현이 복잡함

  13. ● ● / ● ● / ● / ● / ● ● ● ● ● ● ● ● ● / / / / / / / a b a a b c a c a a c c b b c c a b c c a c c c Trie • Search - 가변크기의 키를 다룰때 유용한 인덱스구조 - 분기노드(branch node), 원소노드 - 트라이의 레벨 l, 최악의 탐색시간 O(l)

  14. Conclusion  2-3-4트리는 자료수 증가에 따라 시간이 증가함. 그러나 트라이는 자료수 증가에 상관없이 검색시간이 일정하다. 트라이는 가변크기의 인덱스구조에 적합 -> 2-3-4트리는 검색횟수에 상관없이 검색시간이 일정하다. 트라이는 검색횟수가 증가할수록 검색시간이 증가한다. 일반적인 검색은 2-3-4트리가 더 유용하다.

  15. Burning Tree 착안 • - 일반적으로 검색은 특정 주제에 집중돼 발생한다(집중성). • - 방금 검색된 내용은 빠른 시간 내에 재검색될 수 있다(지역성). •  Cache를 통해 요청이 집중되는 노드로 빠르게 접근한다.

  16. Burning Tree • Concept diagram of the Burning Tree

  17. Burning Tree • 쟁점 •  적절한 적중률 계산 메커니즘 (시간 정보 반영) •  검색 이슈가 변화에 따른 Cache 엔트리 동적 관리 •  추가적인 구현으로 인한 오버헤드 최소화

  18. Burning Tree Hit counting mechanism • Subtree 단위로 카운팅한다. • Subtree에 속한 노드에서만 카운팅한다. • 한 번 적중 시 1씩 증가시킨다. • 특정 시점마다 hit count를 0으로 초기화시킨다. • Cache의 엔트리는 hit count를 초기화시키기 직전에 변경한다.

  19. Burning Tree Hit counting mechanism

  20. Burning Tree • Node와 SubtreeInfo

  21. Burning Tree [Model-1] • Height of Burning Tree: 20 • Height of subroot: 10 • Maximum number of cache entries: 5 • Minimum hit percentage for caching: 5% • State: • Tree is completed. • Entries of cache are full. • Each subtrees’ hit rate in cache entry is 7, 7, 6, 5, 5%. [Expectation] 7/100(1 + 1/2lnN) + 7/100(2 + 1/2lnN) + 6/100(3 + 1/2lnN) + 5/100(4 + 1/2lnN) + 5/100(5 + 1/2lnN) + 70/100(5 + lnN) = 85/100lnN + 4.34 lnN  20 을 대입하면: 21.34 (1.34만큼 더 느려짐)

  22. Burning Tree 문제점 및 결론 • 적절한 성능을 발휘하기 위해서는 비현실적인 모델이 필요(관련 주제들이 같은 서브 트리에 존재하는가? - 범용성). • 노드 제거 시 subtree를 유지할 수 있는가? • 알고리즘 자체가 너무 복잡하지 않은가? (단순성) •  잠정적으로 이 알고리즘 무효

  23. Thick Tree 착안 • 특정 원소에 검색 요청이 집중되는 상황에서의 성능 향상 특징 • 각각의 노드가 hit count 유지 • 이 값을 priority로 사용하여 hit count가 높은 노드들을 root와 가깝게 배치 (Treap의 아이디어 도용)

  24. Thick Tree Treap의 특징 • 랜덤 넘버를 일반 binary tree에 삽입하면 대략적인 균형이 잡히는 점을 이용, key 외에 priority라는 개념 적용 • key뿐 아니라 priority에 의해 전체 트리 구성 결정 • priority는 랜덤하게 생성 • 별도의 balancing 기법 없이 대략적인 균형 유지 • key (in order): left child < parent < right child • priority (heap order): child < parent

  25. Thick Tree Concept diagram of the Thick Tree

  26. Thick Tree Searching & Hit Counting • Binary Search Tree와 동일한 검색 절차 • 한 번 적중 시 1씩 증가 • 검색에 의한 회전 발생 시 (child.hit > parent.hit + a )해당 서브 트리 전체의 hit-count 반감 오래된 count일 수록 영향력 감소

  27. Thick Tree

  28. Thick Tree Rotation (Left/Right)

  29. Thick Tree Insertion & Deletion • Treap의 삽입/삭제와 동일 • 단 삽입 시 랜덤하게 초기화되는 hit-count 값이 너무 크지 않게 한다(상한치 설정, 너무 클 경우 새로 삽입된 노드들이 트리의 상부까지 올라감). • 너무 작을 경우 트리 전체의 균형이 흩트러진다. •  적절한 값 선택 중요

  30. Thick Tree 집중도가 증가함에 따라 성능이 점차 향상된다.

  31. Thick Tree

  32. Thick Tree Alpha에 따른 차이는 크지 않다. 50에서 멀어져 감에 따라 점차 성능이 떨어지는 경향이 있다.

  33. Thick Tree

  34. Thick Tree MaxInitHit 값은 삽입 성능에 커라란 영향을 미치며, 검색 시간에도 영향을 준다.

  35. Thick Tree

  36. Thick Tree 집중도가 낮을 경우의 성능을 측정해보았다. 여전히 인상적인 성능을 보인다.

  37. Thick Tree

  38. Thick Tree 결론 • 여러 통계 데이터에서도 입증되었듯이 Thick Tree는 상당히 인상적인 성능을 보인다. • 알고리즘 자체가 간단하고 명확하다. • 아직 최적화의 여지가 남아있다.

  39. Conclusion • 일반 binary tree는 많은 위험 요소가 있어 여러 가지 balancing 기법들이 고안되었다. • 이중 Red-Black Tree는 가장 완성도 높고 안정적인 구조 중의 하나이다. • 완벽한 balancing이 아니더라도 환경에 따라 balanced tree의 성능을 능가할 수 있다.

More Related