我必须在3年内(2020年至2022年)最小化与目标的距离,同时使用尽可能少的材料。更好地解释:每年的材料(取决于年份分别称为“ b20XX”和p“ 20XX”)具有一定的价值。目标是达到目标(diff(param)=到目标最小化的距离),同时使用更有价值的材料(第二次最小化,尚未实施)。
优化功能为:
def diff(param):
b2020,p2020,b2021,p2021,b2022,p2022 = param
return abs(target - (value[2020] * (b2020 + p2020))-(value[2021] * (b2021 + p2021))-(value[2022] * (b2022 + p2022)))
我正在尽量减少一些限制(0
优化效果很好,可以实现目标,但是它并不关心将利用最有价值的年份的材料量(b2020 + p2020 + b2021 + p2021 + b2022 + p2022)最小化。我该怎么办?
我想在变量上添加一种“成本”,但是这会抵消目标的计算量。另一种选择是在约束中移动diff(param)方程,仅最小化b和p。你有什么建议吗?预先谢谢你。