import itertools
import pandas as pd

# 读取数据
data = pd.read_csv('data4.csv')

# 计算每种单品的收益
data['单品收益'] = data['销量'] * data['成本加成定价'] * (1 - data['单品损耗'] * 0.01) - data['销量'] * data['批发价格']

# 按分类名称进行分组,并计算每种分类的收益之和
grouped_data = data.groupby('分类名称')['单品收益'].sum()

# 进货单品名称数的范围
num_items = range(27, 34)

# 初始化最大收益和对应的单品名称组合
max_profit = 0
max_profit_combination = []
max_profit_quantities = []  # 初始化最佳组合的进货量

# 动态规划算法
for r in num_items:
    combinations = list(itertools.combinations(data['单品名称'], r))
    for combination in combinations:
        profit = sum(grouped_data[combination])
        if profit > max_profit:
            max_profit = profit
            max_profit_combination = combination
            # 获取最佳组合中各单品的进货量
            max_profit_quantities = data[data['单品名称'].isin(combination)]['销量'].tolist()

# 输出结果
print('进货量最大利润的单品名称组合是:', max_profit_combination)
print('商超的最大收益是:', max_profit)
print('各单品的进货量:', max_profit_quantities)
Python动态规划算法优化超市商品组合利润最大化

原文地址: https://www.cveoy.top/t/topic/eqwS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录