我是新的编码,需要你的帮助。 我得到以下错误:
line 159, in _get_solution
xs = np.array(ms.get_values(self.int_var)).reshape(self.path_n, self.orderbook_n)
AttributeError: 'NoneType' object has no attribute 'get_values'
达到本部分代码后:
line 159, in _get_solution
xs = np.array(ms.get_values(self.int_var)).reshape(self.path_n, self.orderbook_n)
当我使用:print(dir(ms))
检查是什么导致了这种情况时,它给出了以下信息:
['__bool__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
我如何继续运行代码
本部分的完整代码为:
def _get_solution(self):
'''function to solve the optimization model, save result and print outputs'''
self.print_content = ''
self.trade_solution = OrderedDict()
ms = self.solve()
xs = np.array(ms.get_values(self.int_var)).reshape(self.path_n, self.orderbook_n)
zs = xs * self.precision_matrix
nonzeroZ = list(zip(*np.nonzero(zs)))
nonzeroZ = sorted(nonzeroZ, key=lambda x: x[0])
如果模型不可行,则Model.solve()可能返回None。在假设已找到解决方案之前,应始终检查“无”,如中所示:
DOcplex拥有处理不可行模型的技术和工具,参见本笔记本 有关不可行模型的教程:
https://github.com/IBMDecisionOptimization/docplex-examples/blob/master/examples/mp/jupyter/infeasible.ipynb
错误告诉您变量
ms
的计算结果为None
,这就是它没有get_values()
方法的原因假设错误消息中的第159行是
_get_solution()
中的对应行,这意味着在上面的行中对
self.solve()
的调用返回了None
您需要检查
self.solve()
以了解它为什么这样做由于您是Python新手,请记住,当函数或方法没有返回语句或从未到达有效的返回语句时,默认情况下它将返回
None
相关问题 更多 >
编程相关推荐