微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用具有二元变量约束的最小化函数的 Scipy 优化方法

如何解决使用具有二元变量约束的最小化函数的 Scipy 优化方法

我正在尝试将我通常在 Excel 中执行的优化工作转移到 Python 脚本中。基本上我有一组数字(交易),它们以某种组合添加到变量(目标)中。我在 Excel 中找到这种组合的方法是有另一个二进制数组,我将两个数组的乘积相加以获得虚拟单元格。我的目标函数是从目标中减去 dummy。最后,我使用求解器尝试通过更改二进制数组将目标函数归零。 Bellow 是我迄今为止尝试过的代码示例,以及我使用运行求解器的 Excel 的一些片段。

非常感谢这方面的任何帮助,在 Scipy 上观看了无数视频,我被困住了。

import numpy as np
from scipy.optimize import minimize,LinearConstraint

deals = np.array([11359992.5,45892294.4,10963487.39,54817436.94,43853949.55,39352270.93,51792041.32,51809259.82,25913243.16,51671721.32,50836797.35])

target = 102508518.67

x = np.arange(len(deals))
constraint = LinearConstraint(x,lb=0,ub=1)
dummy = np.dot(deals,x)
objective_function = dif - dummy
res = minimize(fun = objective_function,x0=0,constraints=constraint)

运行求解器之前的 Excel 片段

Snippet of the Excel before running Solver

运行求解器后的 Excel 片段

Snippet of the Excel after running Solver

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。