Как найти наименьший N-мерный симплекс из набора точек, содержащего заданную точку?

Я просмотрел весь google и стек, но еще не нашел ответа на эту проблему. Я продолжаю находить результаты, относящиеся к симплексному методу, или результаты нахождения наименьшего произвольного симплекса (т. е. вершины не ограничены). Я также не могу придумать аналитического решения.

Учитывая набор N-мерных точек, M, и произвольную N-мерную точку, q, как мне найти наименьший N-мерный симплекс, < em>S, который содержит q в качестве внутренней точки, если вершины S должны находиться в М? Я уверен, что смогу решить это с помощью оптимизации, но мне бы хотелось аналитическое решение, если это возможно. Детерминированный алгоритм тоже подойдет.

Первоначально я использовал подход с K ближайшими соседями, но потом понял, что возможно, что N+1 ближайших соседей к q не обязательно создадут симплекс, содержащий q.

Заранее благодарим за любую оказанную помощь.


person gibbled    schedule 07.11.2015    source источник
comment
Является ли q точкой или симплексом? (Я спрашиваю из-за предложения вершины q в вашем вопросе)   -  person BrunoLevy    schedule 07.11.2015
comment
Спасибо что подметил это. Я отредактировал его.   -  person gibbled    schedule 07.11.2015
comment
Под наименьшим симплексом вы подразумеваете объем или что-то еще? Кстати, это кажется сложной проблемой; Вы имеете в виду конкретные значения или диапазоны значений N и M?   -  person arghbleargh    schedule 15.06.2016


Ответы (1)


Я думаю, вы можете сделать это за O(N^2), используя итеративный процесс, очень похожий на K-NN, но, возможно, есть более эффективный способ. Это должно вернуть минимальный симплекс с точки зрения количества вершин.

Для каждой координаты i в q мы можем перебирать все элементы M, сравнивая q_i и м_и. Мы выберем две точки в M, которые дадут нам минимальную положительную и минимальную отрицательную разницу. Если мы повторим этот процесс для каждой координаты, то у нас должно быть минимальное значение S.

Я правильно понимаю задачу?

person Alharithi    schedule 22.06.2016