我有一个函数,它的参数沿求和方向变化
例如, 求和是一个月(比如说28天)的总订单价格 而且每周价格都在变化
每件商品的价格是 p1-项目1的价格 p2-项目2的价格 p3-项目3的价格
每个星期的价格都不一样,所以 p1w1-第1周第1项的价格 p1w2-第2周第1项的价格 p1w3-第3周第1项的价格 p1w4-第4周第1项的价格
p2w1-第1周第2项的价格 p2w2-第2周第2项的价格…等等…你知道了
所以我想优化的是每周每件商品的购买数量,以最大限度地降低成本。 x1w1-第1周第1项的编号 x1w1-第2周第1项的编号等
x2w1-第1周第2项的数量 等等…你明白了
所以总成本是
合计=(p1w1*x1w1+p1w2*x1w2+p1w3*x1w3+p1w4*x1w4)+ (p2w1*x2w1+p2w2*x2w2+p2w3*x2w3+p2w4*x2w4)+等等……你明白了
我的问题比这更复杂,上面只是对方程的简化,但概念是一样的
我试着在两周之间改变价格
例如,将第1周的价格更改为1000美元,将第2周的价格更改为50美元 我认为优化算法返回的是在第2周购买更多相同的物品,而不是在第1周。但即使价格互换也没有区别,即第1周50美元,第2周1000美元。在这两种情况下,要购买的物品数量保持不变
n = 3
def f(params):
# Initialisation
x=np.zeros(n)
y=np.zeros(n)
z=np.zeros(n)
priceA = [100,50,50]
priceB = [50,1000,50]
priceC = [50,25,500]
x[0],x[1],x[2],y[0],y[1],y[2],z[0],z[1],z[2] = params
return sum([priceA[i]*x[i] + priceB[i]*y[i] + priceC[i]*z[i] for i in range (0,n)])
我期望x、y和z的值在最高价格时最低,在最低价格时最高
上面的代码只是为了简化而编写的
目前没有回答
相关问题 更多 >
编程相关推荐