我的任务是将Solver中使用的GRG非线性问题转换为python。因为我没有NLP的经验,所以我试图将其转化为LP问题
我们有12个变量代表一年内每月产生的太阳能,12个常数代表每月的电网消耗。目标是使十二个变量之和最大化。在纸浆中,我们用以下方式表示这些变量:
problem = LpProblem("Test_Problem", LpMaximize)
grid_consumption = [190, 409, 273, 424, 351, 412, 360, 509, 280, 241, 263, 175]
total_grid_consumption = sum(consumo_odf)
fv_productions = LpVariable.dicts('fv', list(range(12)))
有五个约束,一些显式依赖于变量,另一些隐式依赖于变量
例如,其中一个限制条件是太阳能发电量不能大于电网消耗量,这是一个常数。在纸浆中,我们用以下方式表示此约束:
for i in range(12):
fv_i - grid_consumption[i] <= 0
让我们头疼的一个限制是,1/3的自我消耗必须大于补偿的能量。 如果电网用电量低于太阳能发电量(fv_i),则每月自用电量等于电网用电量,如果电网用电量低于太阳能发电量(fv_i),则每月自用电量等于电网用电量:
for i in range(12):
if(fv_i>grid_consumption[i]):
self_consumption[i] = grid_consumption[i]
else:
self_consumption[i] = fv_i
Excel Solver对此约束没有问题,但我们不知道如何将其转换为纸浆约束。欢迎任何帮助。这是我的第一个问题,如果我能提供更多的信息,请让我知道。谢谢
好的,所以我设法解决了。结果,我不得不再添加两个约束:
由于这是一个最大化类型的问题,每个变量的值将低于电网消耗和太阳能发电之间的最低值
相关问题 更多 >
编程相关推荐