You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pyomo建模:如何处理按月索引的产品集构建问题

产品分配优化问题:Pyomo中月度产品集合的构建

场景背景

仓库存储的产品需分配给多家零售店,每家零售店有月度需求需满足,目标是向每家店收取尽可能高的价格。拥有零售店集合和产品集合,但产品仅能在特定月份使用。

核心目标:最大化avgPrice(其余变量可自行处理)
avgPrice指门店支付的月度产品价格的平均值,假设门店全年有需求,因此除以12:每月为n家门店分配产品,计算每家门店的总支付价格,再求这些值的平均值。

数学模型关键定义

  • (x_{i,j}):产品i分配给门店n的数量
  • 已知参数:(r_n)(门店风险系数)、(\pi_n)(门店当前利润)、(p_n)(门店当前支付价格)、(demand_n)(门店需求)
  • (P_t):t月可用产品集合,存储在按月份索引的字典结构中

现有数据结构

需求字典

demand_dict = {('store_1', 'jan'): 237.2,
 ('store_1', 'feb'): 239,
 ('store_1', 'mar'): 216,
 ('store_1', 'apr'): 119,
 ('store_2', 'may'): 624}
# 包含50+门店,每家有12个月的需求

已通过该字典创建门店集合:store_set = demand_dict.keys()

月份集合

mon_set = ['jan', 'feb', ..., 'dec']

产品字典

每个月份对应产品的可用数量和单价:

prod_dict['jan'] = {'Product Amount': {123: 50,
  456: 31,
  789: 50,
  101: 31,
  102: 70,
  103: 33,
  104: 30,
  105: 14},
'Unit price': {123: 9,
  456: 9,
  789: 7.6,
  101: 7.2,
  102: 6.4,
  103: 5.5,
  104: 5.2,
  105: 5.1}

prod_dict['feb'] = {'Product Amount': {200: 50,
  201: 31,
  202: 50,
  203: 31,
  204: 70,
  205: 33,
  206: 30,
  207: 14},
'Unit price': {200: 9,
  201: 9,
  202: 7,
  203: 7,
  204: 6,
  205: 5,
  206: 5,
  207: 5}

核心问题

每个产品按ID索引,可分配给各门店(只要不超过可用数量,该约束可自行处理),但由于产品集按月索引,不知道如何在Pyomo中创建对应的产品集合。

注:该问题实际为二次规划(QP),因风险系数(r_n)包含变量,并非简单分配高价产品即可。


内容的提问来源于stack exchange,提问作者BenBernke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 19:35:29