2016-09-30 11 views
0

Я реализовал свою математическую модель с использованием Ilog Cplex с C++. Большинство переменных моего решения имеют дробные значения в оптимальных решениях. Некоторые из них очень малы, поэтому cplex выводит их как 0. Есть ли способ повысить точность, чтобы я мог видеть значения таких переменных?Точность в вычислениях C++ Cplex

Кроме того, когда я использую cplex.getBestObjValue(), он дает мне «-Inf». (Это задача максимизации.)

ответ

0

вы можете попробовать использовать параметр IloCplex :: Param :: EMPHASIS :: Численный

подчеркивает точность в числовом нестабильных или сложных проблем. Этот параметр позволяет указать CPLEX, что он должен подчеркивать точность в сложных или неустойчивых проблемах с последующим компромиссом производительности во времени и в памяти.

О вашем втором вопросе, является ли ваша модель LP?

рассматривает

+0

Спасибо за ваш ответ. Когда я использую параметр IloCplex :: Param :: Emphasis :: Numerical, как я могу указать точность? Можете ли вы привести пример использования этого параметра? И да, моя модель - это LP. – user2147241

+0

Значение по умолчанию равно 0: не подчеркивайте числовую точность; Но 1 означает проявлять особую осторожность при вычислении –

1

Имея значения для целочисленных переменных, которые близки к целочисленным значениям (но не точно) вполне нормально. CPLEX имеет допуск целостности, так что эти значения принимаются как достаточно близкие к правильным целочисленным значениям. Просто используйте стандартные выходные функции C++ для вывода этих значений в любую нужную вам точность.

В основном это не проблема, но при необходимости вы можете установить допуск целостности до меньшего значения. Я обычно округляю эти значения до ближайшего целочисленного значения и использую это как мое решение. Вы также можете попробовать повторное решение своей модели с теми переменными решений, которые были скопированы в их округленные целочисленные значения, чтобы убедиться, что решение действительно действительно. Если вы не уверены, что этого достаточно, попробуйте также предложение Alex для точного прецизионного акцента.

 Смежные вопросы

  • Нет связанных вопросов^_^