使用具有二元变量约束的最小化函数的 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 (将#修改为@)