Процедура поиска ближайшего соседа, описанная на странице Википедии, на которую вы ссылаетесь, безусловно, может быть обобщена на другие метрики расстояния, если вы замените «гиперсферу» эквивалентным геометрическим объектом для данной метрики и протестируете каждую гиперплоскость для пересечений с помощью объект.
Пример: если вместо этого вы используете манхэттенское расстояние (т. Е. Сумму абсолютных значений всех разностей компонент вектора), ваша гиперсфера станет (многомерным) ромбом. (Это проще всего визуализировать в 2D - если ваш текущий ближайший сосед находится на расстоянии x от точки запроса p , то любой ближайший сосед за другой гиперплоскостью должен пересекать ромбовидную форму который имеет ширину и высоту 2x и центрирован на p ). Это может затруднить кодирование пересечения гиперплоскости или замедлить его выполнение, однако общий принцип по-прежнему применяется.