А вот это крайне интересно!
Немного поторопился хвастаться. Ожидал прорыва от нового алгоритма. И вроде все тестовые эксперименты говорили что все работает. А вот рабочий запуск пока не дал результатов. Предстоит долгая работа, чтобы разобраться что к чему.
Раз сказал А, надо говорить Б. Суть идеи такова.
Пусть мы строим решение путем добавления новой точки к текущему частично заполненному решению. Естественно возникает задача оценить верхнюю оценку текущего решения. Есть ли смысл добавлять к нему точки или перейти к другому, более перспективному частному решению.
Пусть нам удалось придумать алгоритм вычисления верхней оценки. Но это число надо с чем то сравнить. С неким целевым

. То есть мы ищем решение в котором не менее

точек. Чем больше

тем раньше и чаще мы будем отбраковывать бесперспективные частные решения. Но если мы возьмем слишком большое значение, то рискуем вообще ничего не найти. Самое логичное в качестве

взять наилучшее известное решение.
Для текущей задачи для вычисления верхней оценки текущего решения можно использовать свойство:
Допустим

это максимальное количество точек для

. В каждой плоскости

может быть не более трех точек, а таких плоскостей у нас

. Значит

.