强化学习与运筹优化 面试题
运筹优化 / 强化学习面试题:建模、求解与落地
运筹与 RL 岗的面试很看"建模能力":给一个业务场景,你能不能写出目标函数和约束,选对求解器,说清复杂度与近似方案。RL 部分则会追问 MDP 五元组、策略梯度方差、PPO 的 clip 到底在限制什么。
这个方向在考什么
- 建模:把业务语言翻译成 LP / MIP,变量、目标、约束怎么定
- 求解:精确解 vs 启发式,Gurobi/OR-Tools 的建模技巧与大 M 的坑
- RL 基础:MDP、贝尔曼方程、on-policy 与 off-policy 的区别
- RL 进阶:策略梯度方差、PPO 的 clip、reward shaping 的风险
最常见的几个坑
- big-M 随手取一个很大的数,讲不出它同时是逻辑开关和隐含上界
- 把 RL 说成"试错学习"就结束,写不出贝尔曼方程
- PPO 的 clip 只会说"限制更新幅度",讲不清它替代了什么
七天准备路线
- 第 1-2 天练建模:找 3 个业务场景(排班/路径/指派)写出完整模型
- 第 3 天求解器:Gurobi 建模技巧、松弛与下界、启发式兜底
- 第 4 天RL 基础:MDP、值函数、策略梯度过一遍,能手推 REINFORCE
- 第 5 天RL 进阶:PPO、GAE、reward shaping 的坑
- 第 6-7 天按方向刷题,准备一个真实的运筹落地项目
强化学习与运筹优化高频面试题
- 你说做过排产调度,用了遗传算法/模拟退火。请说明你的编码方式(染色体/状态表示)是什么?适应度函数里有没有加惩罚项?为什么? · 1-3 年
- 你简历里用到了线性规划做工艺参数优化。请说明:当约束中出现「某两个参数不能同时取高值」这类互斥条件时,你是如何把它写进模型的?如果求解器返回 infeasible,你怎么定位是哪条约束导致的? · 1-3 年
- 5 个工人、5 项任务的一对一指派问题,用 0-1 变量 x_ij 建模,目标是最小化总工时。你发现直接解 LP 松弛(把 x_ij ∈ {0,1} 放松成 0 ≤ x_ij ≤ 1)得到的解自动就是整数,根本不需要分支定界。现在客户加了一条约束:“任务 A 和任务 B 不能由同一个人做”,写成 x_Aj + x_Bj ≤ 1(对每个工人 j)。请说明:(1) 为什么原模型的 LP 松弛天然给整数解;(2) 加了这条约束之后还能不能保证,如果不能,你会怎么处理这个模型。 · 1-3 年
- 你需要为一个运输问题建模:10个供应点,20个需求点,最小化运输成本。原本的运输问题约束矩阵是全幺模的,LP松弛直接得到整数解。现在业务要求:每条运输路线如果使用,需要支付一次性固定费用(例如1000元),且每条路线有容量上限。请问:这个问题属于什么类型?LP松弛会得到什么性质解?如果LP松弛得到分数解,你如何判断是否需要精确求解整数解,还是可以用LP解四舍五入? · 3-5 年
- 一个跨工厂的产能分配问题被建成线性规划:约 800 个变量、300 条约束,求解在秒级完成。但输出里出现“0.4 号产线”“1.7 个班组”这类不可执行结果。业务要求每周排一次、凌晨批处理窗口 30 分钟,且允许目标值比理论最优差 1%。你作为技术负责人,怎么判断哪些变量必须整数化、哪些可以保持连续?如果整数化后求解时间涨到小时级,你的降级路径和与业务的精度口径怎么定?请给出可落地的决策规则。 · 5 年以上
- 某车间只有一台设备,每天可用 6 机时、9 kg 原料。生产一件 A 用 1 机时、3 kg 原料,利润 5 元;生产一件 B 用 2 机时、1 kg 原料,利润 4 元。A、B 的产量必须是非负整数。请回答:(1) 写出这个整数规划模型;(2) 求出 LP 松弛的最优解和整数最优解,两者目标值差多少;(3) 有人说“先解 LP,再把结果四舍五入取整就行”,你同意吗?说明理由(本小题的数值是否恰好可行不影响你的结论)。 · 校招
- 单机多周期生产计划模型里有一条约束 p_t ≤ M · y_t:p_t 是第 t 天的产量(连续变量),y_t 是设备当天是否开机的 0-1 变量,设备真实日产能上限是 120 件。同事把 M 直接写成 100000,理由是“写大一点免得约束误伤”。请回答:(1) 这样写会带来什么后果,为什么;(2) 你会怎么确定这个 M,并说明 M 必须满足什么条件,模型才和原意等价。 · 1-3 年
- 你正在为选址问题建模:50个候选仓库,200个客户。决策变量:y_j 表示是否开设仓库j(0-1),x_ij 表示客户i是否由仓库j服务(0-1)。约束:x_ij <= M * y_j,其中M设为所有客户需求总和(10000)。模型有10000个二进制变量和10000个连续变量。求解器跑了1小时仍无可行解。请分析可能的原因,并给出至少两种改进方案。 · 3-5 年
- 一个混合整数规划模型有约 2 万个 0/1 变量、5 万条约束,求解 2 小时最优 gap 停在 5%;业务要求每天 15 分钟内出结果且 gap ≤1%。你接手后要做系统诊断:你怎么判断瓶颈在建模质量、参数配置还是求解算法?给出你的排查顺序、每一步的观测指标,以及达不到 1% 时怎么和业务谈。 · 5 年以上
- 要在 2 个候选仓库里选若干个开仓来服务 3 个客户,客户需求 d=(4,5,6)。仓库 1:固定开仓成本 100、容量 10;仓库 2:固定成本 80、容量 8。客户 i 由仓库 j 供货的单位运费 t_ij 视为已知常数。请写出 MILP 模型,并重点说明:怎样用线性约束表达“仓库没开就不能从它发货”?如果把两个仓库的容量改成无限大,这条“没开就不能发货”的约束又该怎么写? · 校招
- 某设备每天只能处于一种运行模式:模式 A(每小时耗电 30 kWh、产量 10 件)或模式 B(每小时耗电 20 kWh、产量 6 件)。你已用 0-1 变量 y_d 表示第 d 天是否选模式 A。工艺部门提了一条规则:“如果当天产量超过 50 件,当天必须处于模式 A。”请把这条规则写成线性约束,说明里面的常数怎么取;如果工艺部门随后说“这条规则每月允许违反不超过 2 天”,模型要怎么改,改完有什么坑。 · 1-3 年
- 在一个生产调度模型中,你需要表达以下约束:(1) 如果机器A在运行,则机器B必须关闭;(2) 某产品的生产量要么为0,要么在[100, 500]之间(半连续变量)。请分别给出两种不同的建模方式,并比较它们在LP松弛强度和求解效率上的优劣。 · 3-5 年
- 你接手一个共享模型库,约 60% 的逻辑约束用 big-M 表示,M 值从 1e3 到 1e6 不等,靠工程师经验填写。线上出现过“求解器报可行、现场执行却违反”的案例,同时求解时间波动 10 倍。团队有 10 名工程师。你要做一次约束建模治理,请给出:优先级排序、规范条目、以及让规范真正被执行的机制。 · 5 年以上
- 某产线一天可用 12 小时,可以生产规格 A 或规格 B,但同一天只允许生产其中一种。A 的单位加工时间是 0.2 小时/件,B 是 0.3 小时/件;只要生产某个规格,就要做一次 0.5 小时的换型,换型同样占用这 12 小时。请用线性约束表达“只生产一种”和“换型时间”,并给出你所用的 M 的具体数值及其来源。 · 校招
- 注塑工艺要调 3 个参数:料温 T ∈ [180, 240] ℃、保压压力 P ∈ [30, 90] MPa、冷却时间 t ∈ [5, 20] s,目标是翘曲量 w 越小越好。w 只能通过试模测出来,一次试模 2 小时、约 3000 元成本;同一组参数重复试模,w 有约 ±5% 的波动。你只有 30 次试模预算。请说明你会怎么安排这 30 次试模和后续优化,最终交给工艺工程师什么。 · 1-3 年
- 你需要优化一个化工过程的产率,有5个连续工艺参数(温度、压力、浓度等),每个实验成本500元,耗时2小时,最多能做100次实验。已有历史数据200组。目标是在有限实验次数内找到最优参数组合。请给出你的技术路线,并说明为什么选择该方法,而不是其他方法(如网格搜索、贝叶斯优化、响应面法、嵌入代理模型的非线性规划(NLP))。 · 3-5 年
- 一个工艺过程有 5 个连续参数和 2 个离散档位,每次仿真评估约 20 分钟,现场试验成本高且不能越安全边界。目标是质量最优同时能耗降 8%,已有约 80 次历史试验数据(大多集中在旧工况)。你负责 3 个月的技术方案:怎么做实验设计、建模、安全约束和上线?(说明什么阶段用响应面/DoE,什么阶段用贝叶斯优化,什么情况下必须退回去做实验而不是继续调模型。) · 5 年以上
- 某注塑工艺有 3 个可调参数:料筒温度 180–240 ℃、保压压力 40–80 MPa、冷却时间 5–15 s。目标是让废品率最低;但产线考核节拍,冷却时间每增加 1 s,单件节拍就慢 1 s,所以冷却时间越短越好。手上只有 60 组历史试产数据(每组记录了这 3 个参数和对应的废品率)。你会怎么把这件事建成优化问题并求解?请把决策变量、约束、目标分别说清楚。 · 校招
- 车间有 4 台相同设备、12 个待加工订单,每个订单只有一道工序,加工时间已知,不允许抢占,完工才能交付。KPI 是总拖期 Σ max(0, C_i − d_i) 最小。请说明:(1) 你会选时间离散建模还是顺序(连续时间)建模,为什么;(2) 目标里的 max 是非线性的,怎么变成线性形式;(3) 如果从订单 A 换到订单 B 需要换型时间,且 A→B 和 B→A 不一样,模型要加什么。 · 1-3 年
- 你需要为一个Job Shop排产:20个工件,10台机器,每个工件有5道工序,工序顺序固定。目标是最小化最大完工时间(makespan)。你面前有两种MILP建模方式:时间索引模型(离散时间)和析取图模型(连续时间)。请选择一种并说明理由,同时指出另一种在什么情况下更优。 · 3-5 年
共 78 道,这里列出前 20 道。 去题库检索
针对你的简历,生成一套这个方向的题
题目会挂回你简历里的项目,并按真实面试顺序追问。