Изменения

Перейти к: навигация, поиск
Поиск ближайших соседей во всей структуре
На нулевом уровне жадно ищем '''K''' ближайших соседей.
'''knn'''(hnsw, q, K, ef)''':'''
<font color="green">// Входные данные: граф иерархия графов hnsw, запрос q, искомое количество ближайших соседей K, количество кандидатов при поиске ef</font>
<font color="green">// Возвращает: K ближайших соседей q</font>
result W = new TreeSet() <tex>\emptyset</tex> <font color="green">// Вершины упорядочены по возрастанию расстояния до request. ближайшие к q вершины </font> ep mL = случайная вершина из верхнего слоя |hnsw| - 1 maxLevel ep = индекс самого высокого слоя в <tex>random_v</tex> v <tex>\in</tex> hnsw[mL] '''for''' level = maxLevel mL to 1 result W = searchLayer(hnsw, q, ep, ef=1, level) <font color="green">// На каждом уровне, кроме нижнего мы ищем всего одну ближайшую вершину. </font> ep = result.getMin()W result W = searchLayer(hnsw, q, ep, ef, lc=0) '''return''' первые K элементов из resultW
===Вставка элемента===
120
правок

Навигация