A single-layer, geometry-aware pruning framework that builds compact, high-recall proximity graphs without hierarchical routing.
DAPG introduces percentile-based local filtering and adaptive global sparsification to build degree-adaptive proximity graphs that preserve reachability while reducing redundant edges. DAPG improves latency–recall trade-offs over state-of-the-art (SOTA) baselines without multi-layer indexing.
Fixed-degree pruning assumes uniform neighborhood sizes, disregarding spatial density variations and causing suboptimal graph connectivity. DAPG introduces a percentile-based local filtering mechanism that dynamically determines edge retention per node and an adaptive global sparsification policy that caps high-degree outliers. These mechanisms produce degree-stable, path-connected proximity graphs that preserve navigability while reducing redundant edges, resulting in lower traversal cost and improved recall–latency efficiency.
τv + adaptive cap T'.CQ = O(¯dDAPG β(â„“)).cd cppCode/DAPG
make
./dapg sift # expects dataset/sift.data_new
Local percentile thresholds adapt to density; global caps bound branching; LSH seeds initialize search.
Expected query cost factorizes into average degree and expansion depth.
C_Q = O(¯d_DAPG · β(â„“))
T_Q = O(d · ¯d_DAPG · β(â„“))
β(ℓ) = O(log n) under small-world routing
Does DAPG require a hierarchy? single layer with geometry-aware pruning.
Can I swap the LSH backend? β(ℓ) is backend-dependent
Open an issue or email solmazsm@uw.edu.