Это мой следующий (третий) вопрос после двух вопросов, которые я задавал ранее.Их можно найти ниже:
1-й Выяснение причины невозможности модели Pyomo
2-й Модуль Pyomo Util Not Found
Как вы сказали @Qi Chen (ответ на 2-й вопрос), я сделал следующее:
вы можете просто взять функцию в https://github.com/Pyomo/pyomo/blob/master/pyomo/util/infeasible.py и поместите его в свой собственный код (вместе со связанными необходимыми импортами)
Кстати, выше log_infeasible_constraints
функция подразумевает function .
Но я сталкиваюсь с ошибкой, которую не могу понять, почему.Вот некоторые предварительные знания о модели:
- У меня нет права делиться информацией о модели, поэтому я подверг цензуре их, изменив их имена на
some_vars
или xxx
и т. Д... Gamma
является переменной в модели, а также целью минимизации.Таким образом, это нормально, что он не имеет никакого значения для недопустимой модели? - Как мне исправить функцию
log_infeasible_constraints
, чтобы показать мне; "это ограничение делает вашу модель недопустимой из-за значения этой переменной" или что-то подобное?
Ошибка:
WARNING: Loading a SolverResults object with a warning status into model=xxxxx;
message from solver=Model was proven to be infeasible.
ERROR: evaluating expression: No value for uninitialized NumericValue object
Gamma
(expression: some_var[some_index1] +
some_var[some_index2] + some_var[some_index3] +
some_var[some_index4] + some_var[some_index5] +
some_var[some_index6] + some_var[some_index7] +
some_var[some_index8] + some_var[some_index9] +
some_var[some_index10] - 0.0 - Gamma)
ERROR: evaluating object as numeric value: some_var[some_index1] +
some_var[some_index2] + some_var[some_index3] +
some_var[some_index4] + some_var[some_index5] +
some_var[some_index6] + some_var[some_index7] +
some_var[some_index8] + some_var[some_index9] +
some_var[some_index10] - 0.0 - Gamma
(object: <class 'pyomo.core.kernel.expr_coopr3._SumExpression'>)
No value for uninitialized NumericValue object Gamma
Traceback (most recent call last):
File "xxxxx.py", line 464, in <module>
report_tuples=report_tuples)
File "xxxxx.py", line 213, in xxx_xxxxxx
now = master.created
File "xxxxx.py", line 36, in log_infeasible_constraints
if constr.has_ub() and value(constr.body - constr.upper) >= tol:
File "C:\Program Files\Anaconda3\lib\site-packages\pyomo\core\kernel\numvalue.py", line 161, in value
tmp = numeric(exception=exception)
File "C:\Program Files\Anaconda3\lib\site-packages\pyomo\core\kernel\expr_coopr3.py", line 208, in __call__
exception=exception))
File "C:\Program Files\Anaconda3\lib\site-packages\pyomo\core\kernel\expr_coopr3.py", line 812, in _apply_operation
return sum(c*next(values) for c in self._coef) + self._const
File "C:\Program Files\Anaconda3\lib\site-packages\pyomo\core\kernel\expr_coopr3.py", line 812, in <genexpr>
return sum(c*next(values) for c in self._coef) + self._const
File "C:\Program Files\Anaconda3\lib\site-packages\pyomo\core\kernel\expr_coopr3.py", line 217, in _evaluate_arglist
yield value(arg, exception=exception)
File "C:\Program Files\Anaconda3\lib\site-packages\pyomo\core\kernel\numvalue.py", line 170, in value
% (obj.name,))
ValueError: No value for uninitialized NumericValue object Gamma