Имея значения для целочисленных переменных, которые близки к целочисленным значениям (но не точно) вполне нормально. CPLEX имеет допуск целостности, так что эти значения принимаются как достаточно близкие к правильным целочисленным значениям. Просто используйте стандартные выходные функции C++ для вывода этих значений в любую нужную вам точность.
В основном это не проблема, но при необходимости вы можете установить допуск целостности до меньшего значения. Я обычно округляю эти значения до ближайшего целочисленного значения и использую это как мое решение. Вы также можете попробовать повторное решение своей модели с теми переменными решений, которые были скопированы в их округленные целочисленные значения, чтобы убедиться, что решение действительно действительно. Если вы не уверены, что этого достаточно, попробуйте также предложение Alex для точного прецизионного акцента.
Спасибо за ваш ответ. Когда я использую параметр IloCplex :: Param :: Emphasis :: Numerical, как я могу указать точность? Можете ли вы привести пример использования этого параметра? И да, моя модель - это LP. – user2147241
Значение по умолчанию равно 0: не подчеркивайте числовую точность; Но 1 означает проявлять особую осторожность при вычислении –