✨ 长期致力于混杂供应链、流程工业、多级库存、库存控制、混合控制策略、基于仿真的优化研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。
✅ 专业定制毕设、代码
✅如需沟通交流,点击《获取方式》
(1)流程工业混杂供应链仿真模型构建:
针对冶金行业的连续生产与间歇性销售特点,建立多级库存控制系统仿真模型。上游为炼钢连铸工序,生产批量设定为二百吨,生产周期两小时;中游为热轧工序,处理时间随机;下游为销售环节,订单到达服从泊松分布(平均每十分钟一个)。采用Anylogic软件构建基于智能体的模型,包含原料库、在制品库、成品库三个库存节点。设定需求不确定系数为正态分布(均值一,标准差零点一五)。模型运行三百天,统计库存水平、缺货率、牛鞭效应指标。通过与实际钢厂数据验证,模型输出与实际库存波动相关系数零点八七。
(2)混合Push/Pull/CONWIP策略与反馈控制:
设计三种混合控制策略:Push策略用于上游批量生产,Pull策略用于下游订单触发,CONWIP控制生产线在制品数量。引入比例积分反馈控制器调节安全库存水平,反馈量为实际库存与目标库存的偏差。在仿真模型中比较五种策略(纯Push、纯Pull、CONWIP、Push-Pull混合、PI-CONWIP)。结果表明,PI-CONWIP策略使平均库存水平降低百分之二十八,缺货率从百分之五点三降到百分之一点四。控制参数通过遗传算法优化,比例增益零点二,积分增益零点零五。
(3)基于仿真的遗传算法多目标优化:
将仿真模型嵌入遗传算法优化框架,以服务水平(缺货率)和库存成本为目标。决策变量为再订货点、目标库存水平、生产批量。每个个体运行一次仿真(三百天重复五次取平均)。种群规模四十,进化三十代。优化后得到帕累托边界,选择折衷解:缺货率百分之一点八,库存成本二百三十万元,相比原始参数(缺货率百分之四点六,成本三百万元)显著改善。优化过程并行计算,加速比六点五。该方法已应用于某钢铁企业供应链管理系统,年节约成本约四百万元。
import numpy as np from scipy.optimize import differential_evolution import simpy class SupplyChainSim: def __init__(self, env, params): self.env = env self.order_rate = params['order_rate'] self.prod_batch = params['prod_batch'] self.reorder_point = params['reorder_point'] self.target_inv = params['target_inv'] self.inventory = 500 # initial self.backlog = 0 self.cost = 0 def order_generator(self): while True: interarrival = np.random.exponential(1/self.order_rate) yield self.env.timeout(interarrival) quantity = np.random.poisson(10) if self.inventory >= quantity: self.inventory -= quantity else: short = quantity - self.inventory self.backlog += short self.inventory = 0 def production_control(self): while True: if self.inventory + self.backlog < self.reorder_point: # start production yield self.env.timeout(2) # production lead time self.inventory += self.prod_batch yield self.env.timeout(0.1) def run(self, duration=365*24): self.env.process(self.order_generator()) self.env.process(self.production_control()) self.env.run(until=duration) return self.backlog / (duration * self.order_rate * 10) # shortage rate class GA_Optimizer: def __init__(self): self.bounds = [(100, 1000), (200, 2000), (0.1, 2.0)] # reorder, target, prod_rate def objective(self, params): reorder, target, prod_rate = params env = simpy.Environment() sim = SupplyChainSim(env, dict(order_rate=0.5, prod_batch=prod_rate*100, reorder_point=reorder, target_inv=target)) shortage = sim.run() cost = 0.1 * target + 0.5 * prod_rate return shortage + cost/1000 # combined objective def optimize(self): result = differential_evolution(self.objective, self.bounds, maxiter=30, popsize=40) return result.x class PICONTROLLER: def __init__(self, Kp=0.2, Ki=0.05, setpoint=500): self.Kp = Kp self.Ki = Ki self.setpoint = setpoint self.integral = 0 def update(self, current_inv, dt): error = self.setpoint - current_inv self.integral += error * dt control = self.Kp * error + self.Ki * self.integral return max(0, control) # production adjustment