【发布时间】:2021-07-26 17:41:12
【问题描述】:
我有一段代码可以做一件事。在该代码中,我有多个变量,我可以更改这些变量以获得最佳的最终结果。
inputVariable1 = [-1,-2,0,1,2] # All the possible input variablels in can go over
inputVariable2 = [-3,-1,-2,0,1,2,3]
inputVariable3 = [0,1,2,3,4,5,6,7,8,9,10]
def Function(inputVariable1,inputVariable2,inputVariable3):
# doing some stuff with those variabels, in this simplified case I want to find the biggest
# possible sum of those numbers (real code is a bit more complex)
endResult = inputVariable1 + inputVariable2 + inputVariable3
return endResult
因此,我想检查这些 inputVariabels 的所有可能组合(我的代码中有 20 个,代码每次需要 10 秒来计算)并找到可以产生最佳结果或至少达到最小值的那个结果。
例如测试:函数(-1,-3,0),函数(-2,-3,0),...,函数(2,3,9),函数(2,3,10) 但是循环遍历所有可能的组合似乎效率很低,有没有更好的解决方案?
我一直在环顾四周,真的可以找到任何我可以使用或理解的东西(仍在学习中)。
我已经研究过循环等,但是有 8 个变量,每 6 个可能的值可供选择,计算每个可能性大约需要 194 天,我认为并希望可以更有效地完成。
提前致谢。
编辑 1: 计算一堆东西,每个变量代表计算的权重,这些变量的总和将决定是否执行某个动作。
例如
while i in range(0,len(data)):
if x[i] > y[i]:
sum += inputVariable1
if x[i] < z[i]:
sum += inputVariable2
...
if sum > 5:
doAction()
else:
doOtherAction()
【问题讨论】:
-
多重处理应该像下面的答案一样,真正帮助你的事业。也就是说,如果您确实需要所有可能输入变量的结果,那么除了计算它们之外,您无能为力。也许您可以尝试解释您要完成的工作。对于您的用例,可能有更智能的解决方案。目前它太笼统,无法深入思考您的问题。
-
计算一堆东西,每个变量代表计算的权重,这些变量的总和将决定是否执行某个动作。例如``` while i in range(0,len(data)): if x[i] > y[i]: sum += inputVariable1 if x[i] 5: doAction() 其他: doOtherAction() ```
标签: python-3.x loops scipy-optimize