Обновление: я решил попробовать использовать пакет линейного программирования, чтобы определить, являются ли вершины двух многогранников линейно разделимыми. (Вершины - это мои данные, а не многогранники.) Думаю, это будет работать лучше, поэтому мне больше не нужен ответ на этот вопрос.
Я пишу некоторый код, который включает проверку, не пересекаются ли определенные многогранники. Эти многогранники определяются выпуклыми оболочками их вершин, и я создаю выпуклые оболочки, используя Qhull
. В частности, я использую метод:
from scipy.spatial import ConvexHull
Это прекрасно работает, за исключением того, что иногда мои сеты имеют только 2 или 1 очко. Qhull
это не нравится, и оно выдает эту ошибку:
QhullError: QH6214 Ошибка ввода qhull: недостаточно точек (1) для построения исходного симплекса (нужно 3)
При выполнении: | Qhull я Qt
Параметры, выбранные для Qhull 2015.2.r 2016/01/18:
run-id 109084531 инцидентность Qtriangulate _pre-merge _zero-centrum
Хотя я могу справиться с этим, написав некоторые подпрограммы, которые улавливают ситуацию, в которой меньше 3 баллов, досадно, что Qhull
не справляется с этим делом. Поэтому я ищу:
1) Простой способ заставить Qhull справиться с этим правильно
или
2) Альтернативный пакет для использования
Спасибо!