遇见数据集

TRIP优化建模大模型数据集

收藏
魔搭社区2026-04-29 更新2026-07-15 收录
官方服务:

资源简介:

# TRIP优化建模大模型 ## LP-VarPrune:面向线性规划变量剪枝能力微调的数据集 **LP-VarPrune** 是一个面向 **线性规划(Linear Programming, LP)模型结构理解** 的指令微调数据集,旨在训练大模型具备 **变量剪枝(Variable Pruning / Safe Variable Fixing)** 能力,即:在不影响模型 **可行性(feasibility)** 与 **最优性(optimality)** 的前提下,自动识别哪些决策变量可以被 **安全固定为 0**。 该数据集重点考察模型是否能够从原始 `.lp` 优化模型文本中,学习并掌握以下核心能力: - **目标函数解析** - **约束传播与逻辑消元** - **变量上下界与符号约束识别** - **网络流 / 库存流 / 时序平衡结构推断** - **冗余变量与不活跃变量识别** - **可证明安全的变量固定(safe fixing)** 与一般的数学推理或代码生成数据不同,LP-VarPrune 面向的是 **优化建模与求解前处理(presolve)** 场景,具有很强的 **结构推理性、工业实用性与可验证性**。 --- ### 数据集目标 在大规模优化问题中,尤其是供应链、网络流、生产调度、库存控制、能源系统等领域,原始模型通常包含大量 **实际上不可能取正值** 的变量。这些变量如果能在求解前被提前识别并固定为 0,将显著带来以下收益: - **减少变量规模,降低求解复杂度** - **增强 presolve 能力,加速求解器收敛** - **帮助大模型学习优化模型的结构化推理方式** - **为“AI + OR(运筹优化)”结合提供训练基础** LP-VarPrune 的设计目标,不是让模型“解优化问题”,而是让模型学会: > **仅通过模型结构,识别出一定为 0 的变量。** 这是一类非常典型、非常实用、同时也非常适合微调的数据任务。 --- ### 任务定义 给定一条 `.lp` 格式的线性规划模型,模型通常包含: - `Minimize` / `Maximize` 目标函数 - `Subject To` 约束组 - `Bounds` 变量边界 - (可选)`Binary` / `General` / `End` 等段落 模型输入后,大模型需要输出一个仅包含 **可安全固定为 0 的变量** 的列表。 #### 输入形式 输入为一条指令样本,通常包含: - 任务说明(prompt) - 一个完整或裁剪后的 `.lp` 模型文本 - 输出格式要求 #### 输出形式 输出必须为: - **JSON 风格字符串列表** - 每一项严格为 `"variable_name=0"` 形式 - **不允许输出解释、推理过程或额外文本** --- ### 基准特性与主要贡献 LP-VarPrune 相较于一般数学推理或优化问答数据集,具有以下几个核心特点: #### 1. 面向“安全剪枝”的结构推理任务 该数据集不关注“最优解具体数值”,而是关注 **哪些变量在所有可行解 / 所有最优解中都必然为 0**。这使得任务更加偏向: - 结构分析 - 逻辑推导 - 约束传播 - 可达性分析 - 网络平衡链路消元 相比直接求解 LP,这种任务更适合大模型通过文本结构学习。 #### 2. 强可验证性与低歧义性 数据集中的标签并非主观标注,而是来自可验证的结构逻辑,包括但不限于: - **显式边界固定**(如 `x = 0`) - **未出现在任何有效流动链中的变量** - **由流守恒 / 库存平衡推出为 0 的变量** - **受上下游变量全为 0 传播影响的变量** - **被目标函数和约束共同压制的不活跃变量** - **不可达时间段 / 不可达节点 / 不可用弧上的变量** 因此该任务天然具备较强的 **客观性、可复核性和可扩展性**。 #### 3. 高度贴近优化建模真实场景 LP-VarPrune 的样本主要来源于真实优化模型或其结构化生成版本,常见结构包括: - **时间扩展网络流** - **库存平衡模型** - **运输 / 配送流模型** - **供应链补货模型** - **多节点多时段物料转移模型** - **带采购 / 生产 / 消耗链条的资源配置模型** 因此,模型学到的能力具有较强的 **工业迁移价值**。 #### 4. 适合作为“AI for Optimization”基础训练数据 LP-VarPrune 非常适合用于: - **SFT(监督微调)** - **偏结构推理的 instruction tuning** - **运筹优化大模型预训练后的领域适配** - **solver-aware agent / presolve agent 的能力构建** 它可以作为大模型学习优化建模语义的一个重要起点。 --- ### 数据结构 数据集采用 **JSON / JSONL** 形式组织,适合直接用于大模型微调。 每条样本通常包含如下字段: | 字段 | 类型 | 说明 | | --- | --- | --- | | `prompt` | String | 输入指令,包含任务描述、LP 模型文本与输出要求 | | `completion` | String | 标准输出答案,仅包含可安全固定为 0 的变量列表 | | `source` | String | 样本来源标识(如数据生成批次、索引来源等) | #### 单条样本格式示例 ```json { "prompt": "Below is a linear programming model provided in .lp format. Your task is to analyze ...", "completion": "[\"z(15_117_333441_0)=0\", \"s(31_115_117_333441)=0\",...]", "source": "data/20231102_index/run_0" } ``` ## Construction_Injection:面向约束增强的线性优化建模数据集 **Construction_Injection** 是一个面向 **运筹优化建模(Operations Research)与大模型代码生成能力评估** 的结构化数据集。该数据集不仅关注传统的 set-up time 建模问题,更进一步扩展为 **多类型约束增强(Constraint Augmentation)统一建模任务**,核心目标是: > **在不修改原目标函数的前提下,对已有 LP / MILP 模型进行结构化约束增强与建模扩展。** 数据集聚焦于 **“优化模型结构编辑(Optimization Model Editing)”**,旨在系统性评估与提升大模型在复杂工程建模中的: - 结构理解能力 - 约束扩展能力 - 多类型约束建模能力 - 线性化与离散化能力 - LP 文件格式生成能力 --- ### 基准特性与主要贡献 与传统代码生成或文本改写数据集不同,Construction_Injection 强调 **工程建模一致性、结构保真性与可执行性**,其核心贡献体现在以下四个维度: - **统一的优化模型编辑范式**:将 LP/MILP 修改任务标准化为 **“原模型 + 自然语言需求 → 增强模型”** 的统一任务接口,填补 LLM 在 OR 模型编辑方向的数据空白。 - **多约束类型系统性建模覆盖**:不仅包含 set-up time,还系统扩展至: - 人力资源约束(Human Resource Constraints) - 批次与库存约束(Lot & Inventory Constraints) - 跨日生产约束(Cross-day Production) - 分批交付约束(Split Delivery) 构建了一个 **多场景、多约束组合的建模数据空间**。 - **参数化与扰动驱动的数据生成机制**:通过程序自动生成不同参数组合(如 Big-M、批次规模、人力需求、时间周期等),提升模型泛化能力。 - **严格 LP 格式对齐与可执行性约束**:所有输出均为标准 `.lp` 文件格式,不包含解释文本,可直接用于 CPLEX / Gurobi 等求解器。 --- ### 核心基准洞察 基于该数据集的设计,可以总结出当前大模型在优化建模中的关键能力瓶颈: - **结构理解 vs 语义理解鸿沟** 模型不仅需要理解自然语言中的建模需求,还必须解析 LP 文件中的模块结构(Objective / Subject To / Bounds / Binaries)。 - **复杂逻辑的线性化难题** 包括: - set-up 启停逻辑 - 批次整数约束 - 人力耦合约束 - 分批交付逻辑 都需要转化为 Big-M + 二进制变量的线性表达。 - **多约束耦合冲突问题** 不同约束之间可能存在: - 资源冲突(设备 vs 人力) - 时间冲突(set-up vs delivery) - 容量冲突(库存 vs 批次) - **格式保真与工程可执行性问题** 模型即使逻辑正确,也可能因 `.lp` 格式错误而无法求解。 --- ### 数据规模 **当前版本数据集特点:** - **任务类型**:LP/MILP 约束增强(Constraint Augmentation) - **数据形式**:Instruction Tuning(prompt / completion) - **生成方式**:程序自动生成 + 参数扰动 - **总规模**: - 每类约束:600 条样本 - 约束类型:5 类 - 总计:约 **3000+ 样本** --- ### 约束类型体系 数据集覆盖以下五类核心约束建模任务: #### 1. Set-up Time Constraints(准备时间约束) - 支持 3–12 天 set-up 周期 - 引入变量: - 生产状态变量 `y` - 启动变量 `s` - 占用变量 `u` - 核心建模逻辑: - set-up 完成后才能生产 - set-up 期间设备占用但无产出 - 使用 Big-M 建模启停逻辑 --- #### 2. Human Resource Constraints(人力资源约束) - 不同工序人力需求差异化建模 - 总人力资源约束 - 支持: - 工序级人力消耗 - 时间维度扩展(可扩展) --- #### 3. Lot & Inventory Constraints(批次与库存约束) - 批次整数约束 - 最小批次约束(Big-M) - 库存上限约束 - 引入变量: - 整数变量 k - 二进制变量 z --- #### 4. Cross-day Production(跨日生产约束) - 支持生产中断与恢复 - 引入生产状态变量 - 特点: - 非连续生产 - 设备可复用 - 可扩展为时间索引模型 --- #### 5. Split Delivery Constraints(分批交付约束) - 支持订单多批次交付 - 单批次约束 - 引入变量: - batch binary variables - 支持扩展: - 时间间隔约束 - 交付窗口约束 --- ### 数据结构 数据采用 JSON / JSONL 格式: | 字段 | 类型 | 说明 | | --- | --- | --- | | `prompt` | String | 原 LP 文件 + 建模需求 | | `completion` | String | 修改后的完整 LP 文件 | --- ### 建模任务特征 该数据集要求模型具备以下核心能力: #### 1. 结构识别能力 识别 LP 文件中的: - 目标函数(Minimize / Maximize) - 约束(Subject To) - 变量定义(Bounds / Binaries / Integers) - 模块结构(End) --- #### 2. 约束扩展能力 在不破坏原模型的前提下: - 插入新约束模块 - 增加变量定义 - 保持原逻辑一致 --- #### 3. 线性化建模能力 将自然语言转化为: - Big-M 约束 - 启停逻辑 - 占用约束 - 整数约束 --- #### 4. 格式保真能力 输出必须: - 符合 `.lp` 语法 - 不包含解释文本 - 保持原格式结构 --- ### 数据生成机制(核心亮点) 数据通过程序自动生成,具有以下特点: #### 参数扰动机制 - set-up time:3–12 天 - Big-M:1000–2900 - 人力需求:多组合变化 - 批次规模:动态生成 - 时间周期:5–30 天 #### 模板驱动生成 每类约束均基于: - 标准建模模板 - 自动插入 LP 文件 - 自动变量补充 #### 可扩展性 支持扩展: - 多约束组合任务 - 时间索引 MILP - 工业级调度问题 --- ## 贡献人员名单 - **模型贡献方**:OP项目小组 - **核心贡献者**:李天乐、何逸柳(东南大学复杂交通网络研究中心) - **支持团队**:东南大学交通学院、东南大学网络与信息中心 ## 致谢 感谢东南大学网络与信息中心提供的晟腾算力支持

提供机构:
maas
创建时间:
2026-04-07
二维码
社区交流群
二维码
科研交流群
商业服务