Используя numpy, наш решатель оптимизации имеет функцию, которая проверяет выполнимость решения, вычисляя слабые места для ограничений в виде матриц и векторов.
Мы проверяем выполнимость, используя такой код, как :
return np.all(slacks_x >= 0) and np.all(slacks_u >= 0)
В этом есть ошибка, потому что иногда слабины могут принимать значения типа -1.5 e-12
, то есть близкие к нулю, но отрицательные из-за ошибок с плавающей запятой. В этом случае он ошибочно возвращает False
.
. Есть ли в numpy функция, которая может проверять >=0
с допусками? Текущий обходной путь должен проверить >= -0.1
.