关于 optimization-ml-hybrid
面向供应链场景的 ML 与数学优化结合技能,介绍如何将预测结果、学习到的参数或启发式方法用于优化模型。还涵盖端到端学习、神经网络热启动和图神经网络路径规划。
主要功能
- 01将 ML 预测输入优化模型
- 02用数据学习优化参数
- 03构建端到端可微优化层
- 04通过神经网络生成初始解
- 05用图神经网络学习路径启发式
适用场景
- 01将需求预测转化为生产计划
- 02根据历史数据估计安全库存参数
- 03为优化求解生成初始方案
- 04学习路由问题的启发式策略
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ kishorkukreja/ awesome-supply-chain --skill optimization-ml-hybrid安装后在 Claude Code 中输入/optimization-ml-hybrid确认已加载。
详细介绍
优化与机器学习的混合方法
你是将机器学习与供应链数学优化相结合的专家。你的目标是将机器学习预测整合到优化模型中,学习优化参数,并创建端到端学习系统。
关键模式
1. 先预测,再优化
# Step 1: ML predicts demand
demand_forecast = ml_model.predict(features)
# Step 2: Optimization uses forecast
optimal_production = optimize_production(demand_forecast)
2. 使用机器学习优化参数
# Learn optimal parameters from data
safety_stock = ml_model.predict([sku_features, demand_history])
# Use in inventory optimization
reorder_point = expected_demand_during_leadtime + safety_stock
3. 端到端学习
# Differentiable optimization layer
class OptimizationLayer(nn.Module):
def forward(self, predictions):
# Solve optimization with predictions
# Backpropagate through optimization
return optimal_decisions
智能的先预测,再优化
from sklearn.ensemble import RandomForestRegressor
from pulp import *
class PredictThenOptimize:
"""
ML forecasting + Optimization planning
"""
def __init__(self):
self.ml_model = RandomForestRegressor()
self.opt_model = None
def train_ml(self, X_train, y_train):
"""Train ML forecast model"""
self.ml_model.fit(X_train, y_train)
def optimize_with_forecast(self, features, costs):
"""Optimize using ML predictions"""
# Step 1: Predict demand
demand_forecast = self.ml_model.predict(features)
# Step 2: Optimize production
model = LpProblem("Production", LpMinimize)
products = range(len(demand_forecast))
produce = LpVariable.dicts("Prod", products, lowBound=0)
# Objective: minimize cost
model += lpSum([costs[i] * produce[i] for i in products])
# Constraints: meet forecasted demand
for i in products:
model += produce[i] >= demand_forecast[i]
model.solve()
return {i: produce[i].varValue for i in products}
学习优化启发式方法
class MLOptimizationHeuristic:
"""
Learn when to apply optimization heuristics
"""
def __init__(self):
self.classifier = RandomForestClassifier()
def train(self, problem_features, best_heuristic_labels):
"""
Learn which heuristic works best for problem instance
"""
self.classifier.fit(problem_features, best_heuristic_labels)
def select_heuristic(self, problem_instance):
"""Predict best heuristic for new problem"""
features = extract_features(problem_instance)
heuristic_id = self.classifier.predict([features])[0]
return HEURISTICS[heuristic_id]
神经网络热启动
def neural_warm_start(model, problem_instance):
"""
Use NN to generate initial solution for optimization
"""
# NN predicts good initial solution
features = extract_features(problem_instance)
initial_solution = nn_model.predict(features)
# Use as warm start in MIP
for var_name, value in initial_solution.items():
model.variables[var_name].setInitialValue(value)
model.solve()
用于路径规划的图神经网络
class GNNRouter:
"""
GNN to learn routing heuristics
"""
def __init__(self):
self.gnn = GraphNeuralNetwork()
def embed_vrp_instance(self, customers, depot):
"""Convert VRP to graph"""
# Nodes: customers + depot
# Edges: distances
graph = create_graph(customers, depot)
return graph
def predict_route(self, graph):
"""
GNN predicts edge probabilities
Use to construct route
"""
edge_probs = self.gnn(graph)
route = construct_route_from_probs(edge_probs)
return route
工具与库
cvxpylayers:可微分优化OptNet:将优化作为神经网络层qpth:用于 PyTorch 的二次规划层SciPy + PyTorch:自定义集成
相关技能
- optimization-modeling:数学规划
- ml-supply-chain:机器学习
- **metaheuristic-optimization`:启发式方法
- reinforcement-learning-supply-chain:强化学习集成
评论
支持 Markdown