我正在处理PuLP库的LP问题,我有一些奇怪的问题,我自己无法解释。我有将近100个变量和约束,我想把它放到我的模型中,但我不能。它告诉我
RecursionError: maximum recursion depth exceeded in comparison首先,我尝试在for循环中解析它:
for cent_artic in df_demand['REQUIRED']:
display(df_offers[df_offers['REQUIRED']==cent_artic])
lista = list(df_ofertas1[df_ofertas1['REQUERIDO']==cent_artic]['OFERTADO'])
display(lista)
prob += lpSum(lista) >= cent_artic_dict[cent_artic], "Restriccion para cent_artic "+cent_artic 然后RecursionError出现了。
对于这个问题,我只尝试传递一个限制:
prob += lpSum(['c-1_a-2757_p-13','c-1_a-2757_p-12','c-1_a-2757_p-188']) >= cent_artic_dict['c-1_a-2757']这都是一样的。我不明白为什么Python会告诉我一些关于递归错误的事情,如果我只传递一个等式的话…
cent_artic_dict = {'c-5_a-17372_p-188': var_c_5_a_17372_p_188,
'c-179_a-2757_p-188': var_c_179_a_2757_p_188,
'c-18_a-17372_p-188': var_c_18_a_17372_p_188,
'c-26_a-2757_p-18': var_c_26_a_2757_p_18,
'c-41_a-2757_p-18': var_c_41_a_2757_p_18,
'c-156_a-2757_p-188': var_c_156_a_2757_p_188,
'c-24_a-17372_p-188': var_c_24_a_17372_p_188,
...
}现在,df_offers的数据帧具有(89,6)的形状。开始时是(89,21)
有人能解释一下为什么我要用RecursionError吗?谢谢。
我看过关于它的另一个问题,但它没有答案,只有建议
发布于 2018-07-19 05:14:58
我对你在做什么一无所知,但我可以指出
prob += lpSum(['c-1_a-2757_p-13','c-1_a-2757_p-12','c-1_a-2757_p-188']) >= cent_artic_dict['c-1_a-2757']无效,因为lpSum需要的是LpVariables列表而不是字符串
发布于 2020-02-23 02:07:22
我遇到了类似的问题,并且得到了相同的递归错误。
对我来说,我有一个数据类型问题,并且我的约束值被存储为字符串而不是数字!这等同于原始问题中cent_artic_dict['c-1_a-2757']中的值。一旦我的右侧约束是一个数字,我就可以继续下去了。根据评论,我认为Krakenudo可能正面临类似的情况。
https://stackoverflow.com/questions/51380806
复制相似问题