【发布时间】:2016-12-06 19:48:38
【问题描述】:
我想最大化一个有五十个变量的函数的返回值;
def function_to_maximize:
return (7.9*a1 + 8.1*a2 + 0.4*a3 + ........ + 2.6*a50)
我的变量是 0
很遗憾,我对这类任务不是很熟悉。通过谷歌搜索,我发现我可以使用这个documantation 来完成工作,但我不知道如何使用这个库。
您能否提供一个简单的 cmets 示例代码,告诉我必须应用的步骤?
【问题讨论】:
-
你试过只使用几个变量吗?有哪些障碍?
-
@Benjamin 首先我想做一个最大化,但文档谈到了最小化。必须有一个技巧来找到最大值。还有很多标头、算法。我不确定哪一个适合我。它们只是最小化功能的不同实现吗?
-
是的,它们是不同的算法。有些支持约束,有些不支持。如果你使用一般的最小化函数 scipy 会自动选择一个。只需检查文档和示例。你的问题是微不足道的。请记住:max (7*a1 + 8*a2) == min(-7*a1 -8*a2)。 编辑:这里最好的方法是使用线性规划(这是最有限的方法,一般来说最好的求解器)。在 scipy 中有 linprog,但它很糟糕。不过你可以试试!
-
当 10 个最大的乘法因子在变量中的值都为 10(其他为零)时,会不会出现最大值?
-
当然不是@Benjamin。 10000*a1+0.1*a2+0.1*a3+0.1*a4+0.1*a5+0.1*a6+0.1*a7+0.1*a8+0.1*a9+0.1*a10+0?
标签: python numpy optimization scipy