데이터 구조 검색
Retrieval Data Structure컴퓨터 과학에서 검색 데이터 구조(static function이라고도 함)는 다음과 같은 [1]연산을 가능하게 하는 (키, 값) 쌍의 집합으로 구성된 공간 효율적인 사전과 같은 데이터 유형입니다.
- (키, 값) 쌍의 집합에서 구성
- 지정된 키 또는 키가 컬렉션에 포함되지 않은 경우 해당 키와 관련된 값을 검색합니다.
- 키와 관련된 값을 업데이트합니다(옵션).
b { , { \ \ displaystyle } 、 { \ {U} \ \ { , 1 \ } 、 U \ \ } { } 。 xS {\ x S 및 의 임의의 값(그 이외의 경우).
정적 기능과는 대조적으로 AMQ 필터는 (확률론적) 멤버십 쿼리를 지원하며 사전은 키를 나열하거나 키에 관련된 값을 조회하거나 키가 포함되지 않은 경우 다른 기호를 반환하는 등의 작업을 추가로 허용합니다.
조작으로부터 얻을 수 있듯이, 이 데이터 구조에서는 키를 저장할 필요가 전혀 없고, 실제로 키 값 쌍의 단순한 리스트에 필요한 공간보다 적은 공간을 사용할 수 있습니다.따라서 키에 비해 관련 데이터가 작은 경우(예: 몇 비트)에 매력적입니다. 키가 사용하는 공간을 줄임으로써 많은 비용을 절약할 수 있기 때문입니다.
간단한 예를 들어 게임에 애완견이 포함되어 있는지 여부를 나타내는 부울이 달린 게임 이름를 예로 들어 .이 데이터베이스에서 작성된 정적 함수는 원래 집합에 포함된 모든 이름에 대해 관련 플래그를, 다른 이름에 대해 임의 플래그를 복제할 수 있습니다. 정적 함수의 사이즈는 \(비트만으로 할 수 있습니다.이것은, 어느 페어 베이스의 [1]표현보다 훨씬 작습니다.
예
스태틱 함수의 간단한 예로는 위의 모든 조작 및 그 이상을 구현하는 키와 값의 정렬 목록을 들 수 있습니다.그러나 목록 검색 속도가 느리고 최적화를 위해 제거할 수 있는 많은 불필요한 작업을 구현합니다.또한 조회된 키가 전혀 사용되지 않은 경우 정크도 반환할 수 있습니다.
완벽한 해시 함수
정적 함수를 구축하는 또 다른 간단한 예는 완벽한 해시 함수를 사용하는 것입니다. 키의 PHF를 구축한 후 해당 값을 키의 올바른 위치에 저장합니다.이 방법에서는 관련 값도 갱신할 수 있으므로 키는 스태틱해야 합니다.정확성은 완벽한 해시 함수의 정확성에 따라 달라집니다.최소 완전 해시 함수를 사용하면 관련 값이 상대적으로 작을 경우 공간이 크게 절약됩니다.
XOR 취득
해시 필터는 쿼리에 따라 OR, AND 및 XOR 필터로 분류할 수 있습니다.예를 들어, Bloom 필터는 모든 프로브된 위치가 일치하는 경우 구성원 자격 쿼리에 대해 true를 반환하므로 AND 필터입니다. XOR 필터는 정적 검색에만 작동하며 공간을 [2]효율적으로 구축하는 데 가장 적합합니다.모든 키에 대한 쿼리가 true로 반환되도록 하는 선형 시스템을 해결함으로써 구축됩니다.
건설
각 키를 mve n \ m \ left \ S \ \ 에 매핑하는 h{ ) \ 0 z z z z of of of S of has has has has has has has has has has has given given given given has has has has has has has has has given S given given Z\{r
따라서 정적 함수는 h h와(\ Z로 지정되며 공간 사용량은Z 로 주로 지정되며, 이는 키당 약 (1 ( ) nm=+ n n(\displaystyle (\displon) n)은 작은 해시함수라고 가정합니다..
A retrieval for can be expressed as the bitwise XOR of the rows for all set bits of . Furthermore, fast queries require sparse , thus the problems that need to 이 방법에 대해 풀어야 할 것은 적절한 해시 함수를 찾으면서도 선형 방정식의 시스템을 효율적으로 풀 수 있는 것이다.
리본 검색
sparse random h {\ h를 사용하면 검색 캐시가 로컬이 아닌 랜덤 패턴으로Z {\ Z의 대부분에 액세스하기 때문에 캐시 효율성이 떨어집니다. 검색은 각 h)(\x))에 비트가 [2]랜덤으로 된 폭 O ( n /) )(\ w =의 연속적인 "displaystyle h를 부여함으로써 개선됩니다.
( () x S{ ( ) { \ S}g g g g g g g g g g g g g g g g g g g } ggg gggggggggggggggggggggggggggggggggg g g gg g g gg ggggggg그런 다음 현재 행보다 완전히 아래에 있는 행에서 행 연산을 수행하여 이 행의 첫 번째 1 엔트리 아래에 있는 모든 열의 1 엔트리를 제거함으로써 REM 폼을 반복적으로 구성할 수 있습니다.행 연산에서는 리본 이외의 값은 생성되지 않으며 RAM 상에서 O1 로 할 수 있는OR(n / )(\ { 필요하므로 매우 저렴합니다.예상되는 행 연산량은 O( / ) { 을 알 수 있으며, 마지막으로 [3]역치환으로 해결한다.
적용들
대략적인 멤버십
대략적인 멤버십 데이터 구조를 작성하려면 지문 { , { \ \ } , { \ {} \ \ { , 1 \ }^{ } 를 사용합니다 다음 정적 S { \ D _ { _ { } } 를 구축하여 H { s } 를 제한합니다. 입니다.
x U( \ x \ \{ } )의 멤버십을 확인하려면 D ( \ D { _ { } )를x ( \ x )로 하고 반환된 값이 h( )\ h (x 이면 true를 반환합니다.
- xS { x \ S일 경우 S{ 는 올바른 값 를 반환하고 true를 반환합니다.
- 그렇지 않으면 S가 랜덤 값을 반환하고 잘못된 답변을 제공할 수 있습니다.해시의 r(\ r을 사용하면 f = 2 r(\ 의 positive rate를 제어할 수 있습니다.
이 데이터 구조의 성능은 기본 정적 함수의 [4]성능입니다.
완벽한 해시 함수
검색 데이터 구조를 사용하여 완벽한 해시 함수를 구성할 수 있습니다.먼저 H r \ H = i} 와 크기 1 버킷을 Cuckoo 해시테이블에 키를 삽입합니다. 다음키를 저장할 때마다 rr\ 검색 데이터 D\displaystyleD\displaystyle [5]에 의해 완전한 해시 함수가 지정됩니다.
레퍼런스
- ^ a b Stefan, Walzer (2020). Random hypergraphs for hashing-based data structures (PhD). pp. 27–30.
- ^ a b Dillinger, Peter C.; Walzer, Stefan (2021). "Ribbon filter: practically smaller than Bloom and Xor". arXiv:2103.02515 [cs.DS].
- ^ Dietzfelbinger, Martin; Walzer, Stefan (2019). "Efficient Gauss elimination for near-quadratic matrices with one short random block per row, with applications". In Bender, Michael A.; Svensson, Ola; Herman, Grzegorz (eds.). 27th Annual European Symposium on Algorithms, ESA 2019, September 9–11, 2019, Munich/Garching, Germany. LIPIcs. Vol. 144. Schloss Dagstuhl – Leibniz-Zentrum für Informatik. pp. 39:1–39:18. arXiv:1907.04750. doi:10.4230/LIPIcs.ESA.2019.39.
- ^ Dietzfelbinger, Martin; Pagh, Rasmus (2008). "Succinct data structures for retrieval and approximate membership (extended abstract)". In Aceto, Luca; Damgård, Ivan; Goldberg, Leslie Ann; Halldórsson, Magnús M.; Ingólfsdóttir, Anna; Walukiewicz, Igor (eds.). Automata, Languages and Programming, 35th International Colloquium, ICALP 2008, Reykjavik, Iceland, July 7–11, 2008, Proceedings, Part I: Track A: Algorithms, Automata, Complexity, and Games. Lecture Notes in Computer Science. Vol. 5125. Springer. pp. 385–396. arXiv:0803.3693. doi:10.1007/978-3-540-70575-8_32.
- ^ Walzer, Stefan (2021). "Peeling close to the orientability threshold – spatial coupling in hashing-based data structures". In Marx, Dániel (ed.). Proceedings of the 2021 ACM-SIAM Symposium on Discrete Algorithms, SODA 2021, Virtual Conference, January 10–13, 2021. Society for Industrial and Applied Mathematics. pp. 2194–2211. arXiv:2001.10500. doi:10.1137/1.9781611976465.131.