Formulate
规格
| 标签 | 值 |
|---|---|
| 版本 | 0.1.0(更新于 2025-07-28) |
| 开发者 | Labii Inc. |
| 类型 | 章节 |
| 支持配置 | 是 |
概述
Formulate 小插件旨在简化和优化饲料、食品、制药及化工等行业的配方分析。用户可以定义原料、设置营养或功能约束,并使用高级线性规划算法自动计算最佳原料组合。该小插件支持灵活的单位(g/kg、%、mg/kg)、多种优化目标(成本最小化、关键营养素最大化,或平衡质量与性能)以及实时可行性检查,帮助科学家和生产团队快速开发经济、合规且高质量的配方。
使用场景
- 动物饲料配方:优化原料添加比例,在满足牲畜营养需求的同时尽量降低成本
- 食品产品开发:设计包装食品、补充剂或代餐配方时平衡风味、营养与成本
- 药物配方:计算辅料和 API 的准确比例,以满足剂量、稳定性和监管约束
- 定制混合物优化:根据目标规格和原料约束设计营养预混料、维生素包或化学混合物
- 成本最小化:找出满足所有营养或功能要求的最低成本原料组合
- 营养素最大化:在预算或其他约束范围内最大化特定成分(蛋白质、能量等)
界面
只读视图
只读视图以表格形式完整呈现优化结果,包括:
- Optimization Target:指定优化过程的主要目标(例如成本最小化、蛋白质最大化)
- Optimization Type:指明目标是最小化还是最大化
- Feasibility Status:显示在已定义约束下解决方案是否可行
对于可行的解决方案:
- Optimized Value:优化目标达到的数值(例如实现的最低成本)
- Ingredient Composition:最佳配方中各原料的百分比明细
- Batch Size Details:如果已配置批量大小,则显示分配给各原料的实际用量
该表格提供完整视图,便于快速判断配方是否满足要求并了解最佳原料组合。

只读视图显示优化结果,包括可行性状态、原料组成和批量大小详情
编辑视图
编辑视图提供执行优化和管理结果所需的控件:
- Formulate Button:触发线性规划优化算法,计算最佳原料组合
- Real-time Results:优化完成后立即显示结果
- Constraint Access:解决方案不可行时提供修改约束的链接
- Consumption Creation:解决方案可行时,可批量创建消耗记录以跟踪库存
配置
初始设置
点击 Edit 按钮,前往 Widget Settings。
配置 Ingredient Table Settings:
- Ingredient Table:选择包含原料数据的表
- Ingredient Column (Cost):选择包含各原料单位成本的列
配置 Ingredient Component Table Settings:
- Ingredient Component Table:选择包含营养/功能成分数据的表
- Ingredient Component Column (Ingredient):关联原料的列
- Ingredient Component Column (Component):标识成分(蛋白质、钙、脂肪等)的列
- Ingredient Component Column (Amount per kg):包含每千克成分浓度的列
配置 Constraint Table Settings:
- Constraint Table:选择定义约束的表
- Constraint Column (Formulation):将约束关联到配方的列
- Constraint Column (Component):标识受约束成分的列
- Constraint Column (Min Value):包含最低要求值的列
- Constraint Column (Max Value):包含最大允许值的列
配置 Formulation Table Settings:
- Formulation Column (Ingredients):存储优化后原料列表的列
- Formulation Column (Total Inclusion):存储总百分比/重量的列
- Formulation Column (Batch Size):存储批量大小的列(可选)
配置 Formulate Settings:
- Optimization Target:选择要优化的内容(成本、特定营养素、质量指标等)
- Optimization Type:选择最小化或最大化目标
可选择配置 Consumption Table Settings 以跟踪库存:
- Consumption Table:存储原料使用记录的表
- Consumption Column (Source):关联原料来源的列
- Consumption Column (Experiment):关联实验的列
- Consumption Column (Amount):存储消耗量的列
- Consumption Column (Unit):存储计量单位的列
点击 Save 应用配置。
该小插件使用线性规划寻找最佳解决方案。请确保原料、成分和约束数据准确,以获得可靠的优化结果。
请确保约束的最小值和最大值在现有原料条件下切实可行。约束过严可能导致解决方案不可行。
请确保约束的最小值和最大值在现有原料条件下切实可行。约束过严可能导致解决方案不可行。
其他功能
执行优化
运行优化并查找最佳原料组合:
确保已在关联表中配置所有必需数据(原料、成分和约束)。
点击小插件界面中的 Formulate 按钮。
系统使用线性规划算法处理优化,通常在数秒内完成。
查看立即显示的结果:
- 可行性状态
- 如果可行:原料组成百分比和优化值
- 如果不可行:约束冲突处理指引
快速响应让用户能够根据最新且准确的优化结果及时作出数据驱动的决策。
处理不可行的解决方案
当优化问题不可行(没有任何解决方案能满足所有约束)时,可以进行以下调整:
检查约束值,找出潜在冲突或过于严格的要求。
调整最小和最大限值,将约束边界修改为更切合实际的数值。
暂时归档某些约束,以确定导致不可行的具体要求。
逐一系统测试约束,找出冲突来源。
完成调整后,再次点击 Formulate 重新运行优化。
这种系统方法有助于识别并解决约束冲突,从而获得可行的解决方案。
批量创建消耗记录
对于可投入生产的可行配方,可自动生成消耗记录以跟踪库存:
确认配方解决方案可行且满足所有要求。
检查原料百分比和批量计算结果。
点击界面中的批量创建消耗选项。
系统为所有原料生成消耗记录:
- 将每条消耗记录关联到库存中的原料来源
- 根据批量大小和百分比记录准确用量
- 与当前实验或生产批次关联
- 与库存管理集成,实时更新库存
这可确保细致记录原料使用情况并与库存管理无缝集成,有助于全面掌握物料使用情况,提高资源管理效率。
优化算法
该小插件使用**线性规划(LP)**作为核心分析方法,在既定营养、功能和经济约束下优化配方设计。每种原料均视为决策变量 $x_i$,代表其添加比例(通常为百分比或每批千克数);每种成分(例如蛋白质、钙)都是这些变量的线性函数。
目标函数:
例如,为了使成本最小化,模型求解:
$$ \text{Minimize } Z = \sum_{i=1}^{n} c_i x_i $$
其中:
- $x_i$ 是原料 $i$ 的添加量
- $c_i$ 是原料 $i$ 的单位成本
- $n$ 是原料总数
成分约束:
每项成分约束建模为线性不等式。对于给定成分 $j$:
$$ b_j^{\text{min}} \leq \sum_{i=1}^{n} a_{ij} x_i \leq b_j^{\text{max}} $$
其中:
- $a_{ij}$ 是原料 $i$ 中成分 $j$ 的含量
- $b_j^{\text{min}}$、$b_j^{\text{max}}$ 是为成分 $j$ 指定的边界
总添加量约束:
确保所有原料比例之和等于定义的总量:
$$ \sum_{i=1}^{n} x_i = T $$
其中 $T$ 是目标总添加量(通常为 100% 或以 kg 表示的批量大小)。
变量边界:
其他边界可以限制原料用量:
$$ x_i^{\text{min}} \leq x_i \leq x_i^{\text{max}} $$
解决方案通过寻找能够在满足所有约束的同时优化目标函数的 $x_i$ 值得出。是否存在位于既定边界内的此类解决方案决定了可行性。该数学框架支持最低成本、营养素最大化或平衡配方等多种优化目标,同时确保准确满足科学和监管规范。
最佳实践
数据准备
- 准确的成分数据:确保原料成分分析数据为最新数据,并来自可靠的分析方法
- 完整的原料库:在数据库中纳入所有可能有用的原料,为优化提供灵活性
- 定期更新成本:经常更新原料成本以反映当前市场价格,确保成本优化准确
- 单位一致:所有原料成分使用统一的计量单位(例如全部采用 g/kg 或全部采用 %)
定义约束
- 切合实际的边界:根据科学证据和实践经验设置约束的最小值/最大值,而非任意目标
- 可实现的解决方案:确保约束留有足够灵活性,使优化器能够找到解决方案,避免要求过严
- 记录依据:记录选择特定约束值的原因,以供日后参考和审计
- 逐步测试:每次添加一项约束,并在添加后验证可行性
从最少的一组关键约束开始,然后逐步添加其他要求,以了解哪些约束会影响可行性。
优化策略
- 选择正确目标:选择与业务目标一致的优化目标(商业生产侧重成本最小化,高端产品侧重营养素最大化)
- 敏感性分析:找到最佳解决方案后,小幅改变约束边界,以了解解决方案的敏感性
- 验证结果:由经验丰富的配方人员检查最佳配方,确保结果在实践中合理
- 试验性测试:在全面投产前,始终以小规模测试优化后的配方
应避免的常见问题
- 避免:设置相互冲突的约束,导致无法获得可行解决方案
- 正确做法:确定约束优先级,并在发生冲突时放宽优先级较低的要求
- 避免:使用过时的成分分析数据
- 正确做法:制定定期更新原料组成数据的计划
- 避免:忽略不可行警告,强行使用非最佳配方
- 正确做法:在生产前系统诊断并解决约束冲突
相关小插件
- Formulation:用于非优化试剂混合的简单配方计算器。如果比例已预先确定,无需寻找最佳组合,请使用此小插件
集成场景
- 完整优化工作流程:组合使用 Table(原料/成分/约束)、Formulate(优化)、Consumption Tracking 和 Production Records,实现端到端配方开发
- 成本质量分析:组合使用 Formulate、Chart 和 Rich Text,记录优化场景与权衡分析
- 监管合规:组合使用 Formulate、Specifications、Quality Control 和 Electronic Signatures,开展合规的配方开发
- 库存驱动优化:关联 Inventory Management 与 Formulate,根据当前原料可用量和成本进行优化
参考资料
- 线性规划 - Wikipedia - 线性规划理论、算法及其优化应用的综合概述
- 饲料配方指南 - FAO 关于动物营养和饲料配方的资源
- AAFCO 指南 - 饲料配方标准