docplex问题:TypeError:无法使用==测试表达式相等性,请尝试使用Python is运算符或方法相等:
为什么会出现这个错误。由决策变量和常量构建的DOcplex表达式本身就是一个决策对象。其值仅在solve()之后定义,并且可以通过docplex问题:TypeError:无法使用==测试表达式相等性,请尝试使用Python is运算符或方法相等:,python,docplex,Python,Docplex,为什么会出现这个错误。由决策变量和常量构建的DOcplex表达式本身就是一个决策对象。其值仅在solve()之后定义,并且可以通过solution\u value属性查询。 关系运算符(如=,=)已重载以生成约束,例如x==1实际上是一个约束,而不是Python布尔值。 如果x==1,则编写诸如之类的代码无法工作,因为x实际上是一个决策变量,在解算之前没有任何值。 这就是为什么消息告诉您正在尝试测试两个表达式之间的相等性。可以使用is或方法equals,但不能使用= 不幸的是,您的代码不允许重现
solution\u value
属性查询。
关系运算符(如=
,=
)已重载以生成约束,例如x==1实际上是一个约束,而不是Python布尔值。
如果x==1,则编写诸如之类的代码无法工作,因为x实际上是一个决策变量,在解算之前没有任何值。
这就是为什么消息告诉您正在尝试测试两个表达式之间的相等性。可以使用is
或方法equals
,但不能使用=
不幸的是,您的代码不允许重现该问题,也无法理解您尝试执行此操作的原因。您的代码没有编译,而且您没有包含完整的回溯,因此我们不知道您的代码可能会在哪里失败。请提供编译和运行的代码(您的代码有明显的语法错误)。还请提供回溯,以便我们能够识别失败的语句。
mymodel = Model("OPL_Purchasing_plan");
nr_month= range(0, 12)
na_pur_req = [550, 750, 6500, 675, 210, 120, 0, 560, 140, 320, 0, 100]
na_average_cost = 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5]
for i in nr_month:
if(na_pur_req[i] == 0):
mymodel.add_constraint(na_actual_cost_test[0][i] <= na_actual_suply[0][i] * 0,'con9');
else:
mymodel.add_constraint(na_actual_cost_test[0][i] <= na_actual_suply[0][i] * na_average_cost[i],'con10');
TypeError: Cannot use == to test expression equality, try using Python is operator or method equals