Skip to main content

Optimization Tool Icon 最优化工具

最优化工具使用矩阵、手动和文件输入模式求解线性规划 (LP)、混合整数线性规划 (MILP) 和二次规划 (QP) 的优化问题。

此工具使用 R 工具。转至选项 > 下载预测工具,并登录到 Alteryx 下载和许可门户以安装 R 和 R 工具使用的包。如需了解详情,请参阅 下载和使用预测工具

什么是优化?

优化在供应链、运输、金融服务、零售、电信和能源等许多行业中都有广泛应用。应用领域包括供应链优化、分类优化、产品组合优化、劳动力调度和体育调度。

优化问题通常具有以下数学形式,包括一个目标函数(第 1 个等式)、一组约束(第 2 个等式)以及对决策变量类型(连续、整数、二进制)和边界的说明(第 3 个等式)。目标通常是在满足所有基本约束、类型和边界的情况下找到使目标最大化或最小化的决策变量值。

Image of optimization equation

连接输入

对于手动或文件输入模式,无需进行输入。对于矩阵输入模式,输入 OA 是必需的,但 BQ 是可选的。输入 B 仅在部分情况下是可选的。只有在行中选择了约束时,您才能在输入 A 中提供信息。

  • O 锚点:(矩阵输入模式所必需的)使用此输入提供决策变量的名称、它们在目标函数中的系数以及它们的边界和类型(可选)。

    请注意,由于 R 功能,字段名称区分大小写。从 Designer 11.0 开始,您可以启用显示输入锚 O 的字段映射选项,以提高字段名称的灵活性。

    • 变量(必需):一个字符串,决策变量名称。与等式中的 x 相对应。

    • 系数(必需):一个数字,目标函数中每个决策变量的系数。与 c 相对应。

    • lb(可选):一个数字,决策变量的下界。默认值为 0。

    • ub(可选):一个数字,决策变量的上界。默认值为 Inf(正无穷大)。

    • 类型(可选):一个字符,决策变量的类型,可以是 C(连续)、B(二进制)或 I(整数)。默认值为 C

  • A 锚点(矩阵输入模式所必需):使用此输入提供与等式中的 A 相对应的约束矩阵。您可以通过两种不同的方式组织矩阵:

    • 密集矩阵

      • 行为约束:每行与一项约束相对应。

        • 第一个字段可选择命名为约束,表示每行中的约束名称,其余字段名称则应与 O 中定义的决策变量相对应。

        • 此外,还可包含 dirrhs 字段,以将 B 输入合并到 A 输入中。

          • dir:一个字符串,约束不等式的方向。它必须为 >=、<= 或 ==。

          • rhs:一个数字,不等式的右侧,与 b 相对应。

        • 变量字段(以下示例中的 xyz)必须是数字。

        • 列的顺序必须与输入 O 的行顺序相匹配。

        • 例如,如果您的约束等式是:x + 2y + 3z <= 4 和 x + y >= 1,则这些都是输入 A 的合法输入:

          带约束字段:

          约束

          x

          y

          z

          1

          c1

          1

          2

          3

          2

          c2

          1

          1

          0

          无约束字段:

          x

          y

          z

          1

          1

          2

          3

          2

          1

          1

          0

          包括 dir 和 rhs:

          x

          y

          z

          dir

          rhs

          1

          1

          2

          3

          <=

          4

          2

          1

          1

          0

          >=

          1

      • 行为变量:每行与一个变量相对应。

        • 第一个字段应命名为变量,其余字段名称应与约束名称相对应。请注意,这对应于上述等式中 A 矩阵的转置。

        • 约束字段(以下示例中的 c1c2)必须是数字。

        • 输入 O 和输入 A 的变量顺序必须相同。

        • 示例:这是输入 A 的合法输入:

          变量

          c1

          c2

          1

          x

          1

          1

          2

          y

          2

          1

          3

          z

          3

          0

          从 Designer 11.0 开始,您可以对“约束”或“变量”使用其他字段名称,最优化工具会智能地推断出哪个字段包含约束,哪个字段包含变量。但是,命名惯例仍然是首选和推荐的。

    • 稀疏矩阵:对于较大的约束集,您可以指定 SLAM 形式的 A 矩阵。它包含 3 个必填字段 ijv,其中 ij 分别是行和列索引,v 是矩阵元素的非零值。稀疏矩阵模式始终假定行中存在约束。

  • B 锚点(如果尚未在 A 中提供,则是必需的):使用此输入提供约束的名称、方向和右侧。

    • 约束(可选):一个字符串,约束的名称。

    • dir:一个字符串,约束不等式的方向。它必须为 >=、<= 或 ==。

    • rhs:一个数字,不等式的右侧,与 b 相对应。

  • Q 锚点(可选):使用此输入为二次规划问题提供目标函数的二次部分。它与等式中的 Q 相对应。您可以将其指定为密集矩阵或稀疏矩阵。

    • 密集矩阵:字段名称应与 O 中定义的决策变量名称相对应。

    • 稀疏矩阵:字段名称为 ijv,其中 ij 分别是行和列索引,v 是关联矩阵元素的非零值。

输入模式

选择模型作为矩阵

矩阵模式支持密集或稀疏 (slam) 矩阵。矩阵输入模式需要输入 O 和输入 A

选择问题类型

  • 线性规划:(默认)(LP) 具有连续决策变量的线性目标和线性约束。

  • 混合整数规划:(MILP) 具有二进制或整数决策变量以及连续决策变量的线性目标和线性约束。

  • 二次规划:(QP) 具有连续决策变量的二次目标和线性约束。

选择求解器

  • Glpk:(默认)用于线性规划和混合整数线性规划。

  • Symphony:用于线性规划和混合整数规划。对于 MILP,它的性能通常优于 Glpk。

  • Quadprog:用于二次规划。

最大化目标?:如果要将目标函数最大化,请启用此选项。否则,工具会将目标函数最小化。

为输入锚点 A 选择约束模式:有关详细信息,请参阅上面的“连接输入”。

  • 密集矩阵,行为约束(默认)

  • 密集矩阵,行为变量

  • 稀疏 (SLAM) 矩阵

显示输入锚点 O 的字段映射(可选):输入 O 需要为输入表格的字段名称使用保留词变量系数lbub类型。如果使用不同的字段名称,或者字段名称包含前置或后置空格,则会出现错误。通过启用此选项,您可以将现有字段映射到相应的变量系数lbub类型字段,而无需使用选择工具更改字段名称这一额外步骤。

手动输入模型

此模式提供了一个交互式界面,您可以在其中直接指定目标和约束。可对线性规划问题进行敏感性分析。

选择问题类型

  • 线性规划:(LP) 具有连续决策变量的线性目标和线性约束。

  • 混合整数规划:(MILP) 具有二进制或整数决策变量以及连续决策变量的线性目标和线性约束。

  • 二次规划:(QP) 具有连续决策变量的二次目标和线性约束。

选择求解器:Glpk(用于线性规划和混合整数规划)、Symphony(用于线性规划和混合整数规划)或 Quadprog(用于二次规划)。

最大化目标?:如果这是一个最大化问题,则启用此选项。

Variable List(变量列表):指定以逗号分隔的决策变量名称列表。

Objective(目标):指定要最大化或最小化的目标函数。

Constraints(约束):指定约束。确保约束中的所有变量都位于不等号/等号左侧。(例如,求解器对于约束 2x>=y+4 运行失败,但对于约束 2x-y>=4 运行成功。虽然两个等式在数学上等价,但第二个等式符合求解器的要求。)

边界和类型:指定边界和类型。

从文件指定模型

此模式支持行业标准模型文件输入。

选择文件类型CLPEX_LPMathProgMPS_Free

选择求解器Glpk(用于线性规划和混合整数规划)、Symphony(用于线性规划和混合整数规划)或 Quadprog(用于二次规划)。

选择文件:指定优化模型文件。

查看输出

  • I 锚点:此输出提供解决方案的交互式仪表板。

  • D 锚点:此输出包含 3 个管道分隔的表格:摘要、变量和约束。它们可在工作流中的上游用于创建报告和仪表板。

  • S 锚点:这是一个简单的数据输出,由包含目标函数最优值和决策变量的单个表格组成。对于仅由二进制决策变量 (0/1) 组成的问题,此表格仅包含值为 1 的变量。