Análisis en profundidad de la Competencia Nacional de Modelado Matemático de la Copa de la Sociedad de Educación Superior 2023 (Pregunta C)

Pregunta reformulada:


En los supermercados de alimentos frescos, la vida útil de los productos vegetales en general es relativamente corta y la calidad se deteriora con el aumento del tiempo de venta. Si la mayoría de las variedades no se venden el mismo día, no se pueden revender al día siguiente. Por ello, los supermercados suelen reabastecerse todos los días en función del histórico de ventas y demanda de cada producto. Dado que en los supermercados se venden muchas variedades de hortalizas de diferentes orígenes, y el horario de compra y transacción de las hortalizas suele ser entre las 3:00 y las 4:00 de la mañana, los comerciantes deben hacerlo sin conocer exactamente los artículos específicos ni los precios de compra. Tome decisiones de reabastecimiento para cada categoría de vegetales ese día. El precio de las hortalizas generalmente adopta el método de "precio de costo más precio". Los supermercados suelen ofrecer descuentos para los productos que han sido dañados durante el transporte y han deteriorado su calidad. Un análisis confiable de la demanda del mercado es particularmente importante para las decisiones de reabastecimiento y fijación de precios. Desde el lado de la demanda, suele existir una cierta correlación entre el volumen de ventas de hortalizas y el tiempo; desde el lado de la oferta, la variedad de la oferta de hortalizas es relativamente abundante de abril a octubre, y las restricciones en el espacio de venta de los supermercados hacen razonable La combinación de ventas se vuelve extremadamente importante.
 

Pregunta 1


Puede haber ciertas correlaciones entre diferentes categorías o productos individuales de hortalizas. Analice los patrones de distribución y las interrelaciones del volumen de ventas de diversas categorías de hortalizas y productos individuales.

1. Preprocesamiento de datos:

· Primero, filtre los datos relacionados con los productos vegetales de los datos de ventas detallados proporcionados en el Apéndice 2.

· Limpiar los datos, incluida la eliminación de valores faltantes y valores atípicos, para garantizar la calidad de los datos.

· Clasificar fechas de venta y cantidades de venta por categoría de vegetales o producto único.

2. Análisis estadístico descriptivo:

· Realizar análisis estadísticos sobre el volumen de ventas de cada categoría de vegetales y producto individual, y calcular estadísticas como promedio, varianza y mediana.

· Dibujar histogramas y diagramas de caja de ventas para comprender la distribución de las ventas.

3. Análisis de correlación:

· Utilizar herramientas estadísticas (como coeficientes de correlación) para analizar la correlación del volumen de ventas entre diferentes categorías de hortalizas o productos individuales.

· Dibujar un diagrama de dispersión para visualizar la relación entre los volúmenes de ventas.

· Preparación de datos: De acuerdo con el objetivo de la pregunta 1, seleccionar los datos de ventas de la categoría de vegetales o producto único que necesita ser analizado y extraerlos.

· Calcular la correlación: utilice métodos estadísticos (como el coeficiente de correlación de Pearson, el coeficiente de correlación de Spearman) para calcular la correlación del volumen de ventas entre diferentes categorías de vegetales o productos individuales.

·Visualización: dibuje diagramas de dispersión o mapas de calor para visualizar correlaciones de modo que pueda observar más claramente la relación entre diferentes categorías o productos individuales.

4. Análisis de series de tiempo:

· Para cada categoría de hortalizas o producto individual, se pueden realizar análisis de series temporales sobre los cambios en el volumen de ventas a lo largo del tiempo para identificar tendencias de ventas y estacionalidad.

· Utilice modelos de series de tiempo (como los modelos ARIMA) para predecir ventas futuras.

· Preparación de datos: seleccione los datos de ventas de la categoría de vegetales o producto único que necesita ser analizado y ordénelos por tiempo.

· Descomposición de series temporales: descomponga los datos de series temporales en componentes de tendencia, estacionalidad y ruido para comprender mejor las tendencias de ventas.

· Ajuste del modelo: según la naturaleza de la serie temporal, seleccione un modelo de serie temporal apropiado, como el modelo ARIMA. Ajustar el modelo y estimar los parámetros.

· Previsión de ventas futuras: utilice el modelo ajustado para predecir ventas futuras y comprender posibles tendencias de ventas.

5. Análisis de conglomerados:

· Utilice métodos de análisis de conglomerados (como la agrupación de K-medias) para agrupar categorías de hortalizas o productos individuales para encontrar grupos de productos con comportamiento de ventas similar.

· Estudio adicional de las relaciones de volumen de ventas dentro de cada grupo.

· Preparación de datos: seleccione los datos de ventas de la categoría de vegetales o producto único que se agrupará y asegúrese de que los datos contengan suficientes características.

· Selección de funciones: si hay varias funciones (como cantidad de ventas, volumen de ventas, margen de beneficio bruto, etc.), seleccione las funciones adecuadas para la agrupación.

· Estandarización: estandarice las funciones para garantizar que estén en la misma escala.

· Algoritmo de agrupación: elija un algoritmo de agrupación apropiado, como la agrupación de K-medias. Determine el número de grupos en los que se dividirá.

· Visualización de los resultados del agrupamiento: dibuje un diagrama de dispersión de los resultados del agrupamiento o una visualización del centro del agrupamiento para observar el agrupamiento de diferentes categorías de vegetales o productos individuales.

6. Análisis visual:

· Utilice herramientas de visualización de datos para dibujar mapas de calor, diagramas de correlación, diagramas de series de tiempo, etc. para mostrar más claramente los patrones y relaciones de distribución de ventas.

7. Interpretación y aplicación de resultados:

· Los resultados obtenidos del análisis pueden ayudar a los supermercados y supermercados a comprender las tendencias del volumen de ventas, las correlaciones y la estacionalidad entre diferentes categorías de vegetales y productos individuales.

· Esta información se puede utilizar para desarrollar estrategias de reabastecimiento, como reabastecimiento alternativo entre categorías de vegetales con mayor volumen de ventas, para reducir las pérdidas de inventario.

· También se puede utilizar para estrategias de precios, como ajustar los precios de diferentes categorías o productos individuales en función de las relaciones de volumen de ventas para aumentar los ingresos por ventas.

La versión completa de la respuesta (a continuación) tiene el código completo.

Pregunta 2


Durante el cálculo:

1. Preparación de datos:

· Utilice los datos del Apéndice 2 para extraer la cantidad de ventas, el precio al por mayor y la tasa de pérdida de cada categoría de hortalizas.

· Limpiar y procesar datos para garantizar la precisión e integridad de los datos.

2. Análisis de precios costo plus:

· Calcular el costo de cada categoría de hortalizas, que puede incluir costos de adquisición, costos de transporte y otros costos relacionados.

· Determinar el precio de venta de cada categoría de hortalizas con base en el método de fijación de precios de costo plus. Normalmente, el precio de venta se puede establecer como un porcentaje de margen del costo.

3. Establecer un modelo de optimización:

Función objetiva:

· Definir una función objetivo para maximizar los ingresos totales del supermercado. Los ingresos totales se pueden calcular como los ingresos por ventas menos los costos totales.

Variables de decisión:

· Para cada categoría de hortalizas:

· Variable de decisión de precio: precio de venta (Precio)

· Variable de decisión de reabastecimiento: cantidad de reabastecimiento diario (Replenishment)

Restricciones:

· Las limitaciones incluyen:

· Restricciones de demanda: la cantidad de ventas diarias no debe exceder la cantidad de reabastecimiento para evitar el exceso de existencias o el agotamiento del inventario.

· Restricción de cantidad total de reabastecimiento: la cantidad total de reabastecimiento diario no puede exceder un cierto límite para evitar compras excesivas.

· Restricción de rango de precios de venta: El precio de venta no puede ser inferior al precio mínimo, ni superior al precio máximo.

· Restricciones de pérdida: considere la tasa de pérdida de vegetales para evitar pérdidas excesivas.

4. Solución modelo:

· Utilizar solucionadores de programación lineal (como PuLP, Gurobi, CPLEX, etc.) para resolver el modelo de programación lineal establecido. Estos solucionadores pueden ayudar a encontrar precios de venta óptimos y decisiones de reabastecimiento para maximizar los ingresos totales.

5. Resultados del modelo y toma de decisiones:

· El solucionador genera el precio de venta óptimo y las decisiones de reabastecimiento, y los ingresos totales correspondientes.

· Con base en los resultados del modelo, formule el volumen de reabastecimiento diario total y la estrategia de precios para la próxima semana (del 1 al 7 de julio de 2023) para maximizar las ganancias del supermercado.

6. Evaluación y ajuste del modelo:

· Evaluar el resultado del modelo para verificar la viabilidad y eficacia del modelo.

· Si es necesario, los parámetros o restricciones del modelo se pueden ajustar según la situación real para optimizar la estrategia de toma de decisiones.

import pandas as pd
import pulp
 
# 读取销售数据
data = pd.read_csv('sales_data.csv')
 
# 假设您已经有了每个蔬菜品类的成本数据和损耗率数据
# 请确保数据的格式与您的实际数据一致
 
# 创建线性规划问题
model = pulp.LpProblem("Maximize_Revenue", pulp.LpMaximize)
 
# 创建决策变量:售价和补货数量
price = pulp.LpVariable.dicts("Price", data['Category'], lowBound=0, upBound=None, cat='Continuous')
replenishment = pulp.LpVariable.dicts("Replenishment", data['Category'], lowBound=0, upBound=None, cat='Continuous')
 
# 定义目标函数:最大化总收益
model += pulp.lpSum((price[category] * replenishment[category] * (1 - data['LossRate'][i]) - data['Cost'][i]) * data['Sales'][i] 
                    for i, category in enumerate(data['Category']))
 
# 添加约束条件:需求约束、补货总量约束、售价范围约束
for category, df_category in data.groupby('Category'):
    model += pulp.lpSum(replenishment[category]) >= pulp.lpSum(df_category['Sales']), f"Demand_Constraint_{category}"
    model += pulp.lpSum(replenishment[category]) <= 7 * pulp.lpSum(df_category['Sales']), f"Replenishment_Constraint_{category}"
    model += price[category] >= df_category['Cost'].min(), f"Min_Price_Constraint_{category}"
    model += price[category] <= df_category['Cost'].max(), f"Max_Price_Constraint_{category}"
 
# 求解线性规划问题
model.solve()
 
# 打印结果
print(f"Status: {pulp.LpStatus[model.status]}")
 
for category in data['Category']:
    print(f"Category: {category}")
    print(f"Optimal Price: ${price[category].varValue:.2f}")
    print(f"Optimal Replenishment: {replenishment[category].varValue:.2f} units")
    print()
 
# 计算总收益
total_revenue = pulp.value(model.objective)
print(f"Total Revenue: ${total_revenue:.2f}")

Pregunta 3


La pregunta 3 requiere formular un plan de reabastecimiento de un solo producto para controlar el número total de productos individuales vendibles entre 27 y 33, cumpliendo al mismo tiempo con los requisitos de cantidad mínima de exhibición y maximizando las ganancias del supermercado. Para resolver este problema, se puede utilizar la programación lineal entera mixta (MILP) para construir un modelo de optimización.

1. Preparación de datos:

· Utilice los datos del Anexo 3 para extraer información sobre productos individuales vendibles, incluidos datos de ventas, costo, tasa de pérdida, etc. del producto individual.

· Limpiar y procesar datos para garantizar la precisión e integridad de los datos.

2. Establecer un modelo de optimización:

Función objetiva:

· Definir una función objetivo para maximizar los ingresos totales del supermercado. Los ingresos totales se pueden calcular como los ingresos por ventas menos los costos totales.

Variables de decisión:

· Por cada artículo vendible:

· Variable de decisión de cantidad del pedido: La cantidad del pedido es una variable entera que representa la cantidad de un solo producto a pedir.

·Variable de decisión de precio: El precio de venta (Precio) es una variable continua que representa el precio de venta de un solo producto.

Restricciones:

· Las limitaciones incluyen:

· Restricción de cantidad de un solo producto: el número total de productos individuales ordenados debe estar entre 27 y 33.

· Restricción de cantidad mínima de exhibición: la cantidad del pedido de cada artículo debe cumplir con el requisito de cantidad mínima de exhibición (2,5 kg).

· Restricción de rango de precios de venta: El precio de venta no puede ser inferior al precio mínimo, ni superior al precio máximo.

· Restricciones de pérdida: considere la tasa de pérdida de productos individuales para evitar pérdidas excesivas.

3. Resuelva el modelo de optimización:

· Utilice solucionadores de programación lineal entera mixta (como PuLP, Gurobi, CPLEX, etc.) para resolver el modelo MILP establecido.

· Encuentre la cantidad de pedido óptima y la estrategia de precios para una unidad vendible determinada para maximizar los ingresos totales.

4. Resultados del modelo y toma de decisiones:

· El solucionador genera la cantidad de pedido óptima y la estrategia de precios, y los ingresos totales correspondientes.

· Con base en los resultados del modelo, formule el volumen de reposición de producto único y la estrategia de precios para el 1 de julio.

5. Evaluación y ajuste del modelo:

· Evaluar el resultado del modelo para verificar la viabilidad y eficacia del modelo.

· Si es necesario, los parámetros o restricciones del modelo se pueden ajustar según la situación real para optimizar la estrategia de toma de decisiones.

Función objetivo: Maximizar los ingresos totales del supermercado. Los ingresos totales se pueden calcular como los ingresos por ventas menos los costos totales.

Costo de tasa de pérdida Maximizar ∑i(Pi⋅Qi⋅(1−tasa de pérdida i)−costo i⋅Qi)\text{Maximizar } \sum_{i} (P_i \cdot Q_i \cdot (1 - \text{Tasa de pérdida} _i) - \text{coste}_i \cdot Q_i)

Variables de decisión: Para cada artículo vendible, tenemos dos variables de decisión:

· Variable de decisión de cantidad de pedido (entero): QiQ_i, que indica la cantidad de un único producto a pedir.

· Variable de decisión de precio (continua): PiP_i, que indica el precio de venta de un único producto.

Restricciones:

1. Restricción de cantidad de un solo producto: el número total de productos individuales ordenados debe estar entre 27 y 33. 27≤∑i​Qi​≤3327≤∑i​Qi​≤33

27≤∑iQi≤3327 \leq \sum_{i} Q_i \leq 33

2. Restricción de cantidad mínima de exhibición: la cantidad del pedido de cada artículo debe cumplir con el requisito de cantidad mínima de exhibición (2,5 kg). Qi​≥2.5Qi​≥2.5 , para todo i

Qi≥2.5, para todo iQ_i \geq 2.5, \text{ para todo } i

3. Restricciones del rango de precios de venta: el precio de venta no puede ser inferior al precio mínimo ni superior al precio máximo. Pi​≥precio mínimo, para todo i

Precio mínimo Pi≥precio mínimo, para todos iP_i \geq \text{Precio mínimo}, \text{ para todos } i

Pi​≤precio máximo, para todo i

Precio máximo Pi ≤ precio máximo, para todos iP_i \leq \text{Precio máximo}, \text{ para todos } i

1. Restricciones de pérdidas: considere la tasa de pérdida de un solo producto para evitar pérdidas excesivas.

Tasa de pérdida inventario disponible Qi​≤(1−tasa de pérdida i​)×inventario disponible i​,foralli

Qi​≤(1−tasa de pérdida i​)×inventario disponible i​, para todo i

Tasa de pérdida de inventario disponible Qi ≤ (1 − tasa de pérdida i) ⋅ inventario disponible i, para todo i

Q_i \leq (1 - \text{tasa de pérdida}_i) \cdot \text{inventario disponible}_i, \text{ para todos } i

Definición de función objetivo: Maximizar los ingresos totales, donde los ingresos totales consisten en los ingresos por ventas menos los costos de cada unidad. Maximizar ∑i​(Pi​⋅Qi​⋅(1−tasa de pérdida i​)−costo i​⋅Qi​)

Pregunta 4


1. Datos de ventas en tiempo real:

· Tipo de datos: cantidad de ventas diarias, volumen de ventas, canal de ventas y otros datos de diferentes categorías de vegetales y productos individuales.

· Ayuda: Los datos de ventas en tiempo real pueden proporcionar información sobre la demanda actual, ayudando a los supermercados y supermercados a tomar decisiones de reabastecimiento y estrategias de precios más precisas. También puede ayudar a los supermercados a rastrear las tendencias de ventas y los cambios estacionales.

2. Datos de la cadena de suministro:

· Tipo de datos: información de la cadena de suministro de diferentes categorías de hortalizas y productos individuales, incluidos proveedores, tiempo de suministro, precio de compra, etc.

· Ayuda: Los datos de la cadena de suministro pueden ayudar a los comerciantes y supermercados a comprender el rendimiento, la estabilidad y la entrega a tiempo de los proveedores, y ayudar a tomar mejores decisiones de compra y selección de proveedores.

3. Datos de costos:

· Tipo de datos: costes de adquisición, costes de transporte, costes de almacenamiento, etc. de diferentes categorías de hortalizas y productos individuales.

· Ayuda: Los datos de costos son importantes para desarrollar una estrategia de precios de costo plus. Pueden ayudar a los supermercados a garantizar que el precio de venta sea lo suficientemente alto como para cubrir todos los costos y obtener una ganancia razonable.

4. Datos de tasa de pérdidas:

· Tipo de datos: datos de tasa de pérdida de diferentes categorías de hortalizas y productos individuales.

· Ayuda: Los datos sobre la tasa de pérdidas pueden ayudar a los supermercados a optimizar la gestión de inventario y las decisiones de reabastecimiento. También ayudan a reducir las pérdidas y mejorar los márgenes de beneficio.

5. Datos de tendencias del mercado:

· Tipos de datos: tendencias del mercado, precios de la competencia, preferencias de los consumidores y otros datos.

· Ayuda: Los datos de tendencias del mercado pueden ayudar a los supermercados a ajustar las estrategias de precios para seguir siendo competitivos. Comprender los precios de sus competidores y las preferencias de los consumidores puede ayudarle a desarrollar una estrategia de precios más atractiva.

6. Datos estacionales:

· Tipo de datos: datos de ventas de hortalizas en diferentes temporadas, datos de cambios de precios estacionales, etc.

· Ayuda: Los datos estacionales ayudan a los supermercados a desarrollar diferentes estrategias de reabastecimiento y precios en diferentes temporadas para satisfacer la demanda estacional y las fluctuaciones de precios.

7. Datos de inventario:

· Tipo de datos: volumen de inventario, tasa de rotación de inventario y otros datos.

· Ayuda: Los datos de inventario pueden ayudar a los supermercados a optimizar la gestión de inventario, reducir el exceso de inventario o las situaciones de agotamiento y mejorar la utilización del capital.

8. Datos de comentarios de los clientes:

· Tipo de datos: datos como comentarios de clientes, quejas y sugerencias.

import requests
· import pandas as pd
· 
· # 从API获取数据的示例
· url = 'https://api.example.com/data'
· response = requests.get(url)
· data = response.json()  # 将响应数据解析为JSON格式
· 
· # 将数据存储为DataFrame
· 
· df = pd.DataFrame(data)
· 
· #2. 数据清洗和预处理:
· 
· #对数据进行清洗和预处理,包括处理缺失值、重复值、异常值等。
· # 处理缺失值
· df.dropna(inplace=True)
· 
· # 处理重复值
· df.drop_duplicates(inplace=True)
· 
· # 处理异常值
· # 例如,移除销售数量小于0的记录
· df = df[df['Sales'] >= 0]
· 
 
· #3. 数据分析:
· 
· #使用pandas和其他数据分析库来执行数据分析任务,如统计、聚合、计算指标等。
· # 统计数据摘要
· summary_stats = df.describe()
· 
· # 计算总销售额
· total_sales = df['Sales'].sum()
· 
· # 分组聚合操作
· category_sales = df.groupby('Category')['Sales'].sum()
· 
· # 数据可视化
· import matplotlib.pyplot as plt
· 
· # 绘制销售量的直方图
· plt.hist(df['Sales'], bins=20, color='blue', edgecolor='black')
· plt.xlabel('Sales')
· plt.ylabel('Frequency')
· plt.title('Sales Distribution')
· plt.show()
· #4. 数据可视化:
· 
· #使用数据可视化库(如matplotlib、seaborn)来创建图表和可视化工具,以更好地理解数据。
· # 绘制销售量的折线图
· plt.plot(df['Date'], df['Sales'], marker='o', linestyle='-', color='green')
· plt.xlabel('Date')
· plt.ylabel('Sales')
· plt.title('Sales Over Time')
· plt.xticks(rotation=45)
· plt.show()

Código completo + ideas:Análisis en profundidad de la Competencia Nacional de Modelado Matemático de la Copa de la Sociedad de Educación Superior 2023 (Pregunta C)

Supongo que te gusta

Origin blog.csdn.net/qq_25834913/article/details/132737255
Recomendado
Clasificación