# 决策变量 (Decision Variable)
决策变量 (Decision Variable) 是在{{{数学规划}}} (Mathematical Programming) 和{{{优化问题}}} (Optimization Problem) 中最核心的概念之一。它代表了在特定问题情境下,决策者可以控制和选择的未知量。这些变量的最终取值,构成了问题的解决方案。简单来说,决策变量是模型中需要求解的“答案”。
在构建一个{{{数学模型}}}时,第一步也是最关键的一步,就是准确地识别和定义决策变量。它们是连接现实世界决策问题与抽象数学模型的桥梁。
## 决策变量的核心特征
一个量要成为决策变量,通常具备以下几个关键特征:
1. 可控性 (Controllability):决策变量的值必须是由决策者直接决定的。例如,一个工厂生产多少件产品、一个投资者购买多少股股票、一个物流公司选择哪条运输路线等,都是可控的。相比之下,市场价格、原材料成本等通常被视为外部{{{参数}}} (Parameter),而非决策变量,因为决策者无法直接控制它们。
2. 未知性 (Unknown):在问题求解之前,决策变量的最优值是未知的。整个优化过程的目的,就是为了找到一组能使{{{目标函数}}}达到最优(最大化或最小化)的决策变量的值。
3. 量化性 (Quantifiable):决策变量必须是可以用数字来表示的。例如,生产数量、投资金额、分配的人数等。即使是“是/否”型的决策,也需要量化为 0 或 1。
4. 相互关联性 (Interrelated):在大多数有意义的优化问题中,决策变量之间通常不是孤立的。它们共同受到{{{约束条件}}}的限制,并且共同影响目标函数的值。对一个变量的调整,往往会影响其他变量的取值范围。
## 数学表示与分类
在数学模型中,决策变量通常用字母和下标来表示,例如 $x_1, x_2, \dots, x_n$。它们也可以被组织成一个向量形式,记为 $\mathbf{x} = [x_1, x_2, \dots, x_n]^T$。
根据决策变量可以取的值的类型,它们可以被分为以下几类:
* 连续变量 (Continuous Variables) 可以取某一范围内的任何实数值。这类变量通常用于表示可以被分割的量。 * 例子:生产多少吨钢材、向一个项目投资多少资金(例如 $150.55)、液体混合物中各种成分的比例。 * 数学表示:$x \ge 0$ 或 $L \le x \le U$,其中 $x \in \mathbb{R}$。
* 整数变量 (Integer Variables) 只能取整数值。这类变量用于表示不可分割的单位。 * 例子:雇佣多少名工人、建造多少个仓库、购买多少架飞机。 * 数学表示:$x \in \mathbb{Z}$。 * 包含整数变量的优化问题称为{{{整数规划}}} (Integer Programming, IP)。
* 二元变量 (Binary Variables) 也称 0-1变量,是整数变量的一种特殊情况,只能取 0 或 1 两个值。二元变量在建模中极为强大,常用于表示“是/否”、“开/关”、“选择/不选择”等逻辑决策。 * 例子:是否建设一个新工厂(1代表是,0代表否)、是否选择某条运输路线(1代表是,0代表否)、一个项目是否被批准(1代表是,0代表否)。 * 数学表示:$x \in \{0, 1\}$。
* 混合变量 (Mixed Variables) 当一个优化问题中同时包含连续变量、整数变量和/或二元变量时,该问题就属于{{{混合整数规划}}} (Mixed-Integer Programming, MIP) 的范畴。许多现实世界的复杂问题,如供应链设计、生产调度等,都需要混合变量来建模。
## 在优化模型中的作用
决策变量是构成一个完整优化模型的基石。一个标准的优化模型由以下三个部分组成,而决策变量贯穿其中:
1. {{{目标函数}}} (Objective Function) 这是需要被最大化或最小化的一个关于决策变量的函数。它量化了决策的目标,例如最大化利润、最小化成本、最大化效率或最小化风险。 * 示例:假设 $x_1$ 和 $x_2$ 分别代表产品A和产品B的产量,其单位利润分别为 $10 和 $15。则最大化总利润的目标函数为: $$ \text{Maximize } Z = 10x_1 + 15x_2 $$
2. {{{约束条件}}} (Constraints) 这是一组关于决策变量的等式或不等式,用于描述决策所受到的限制。这些限制可能源于资源有限(如原材料、工时、预算)、物理定律、政策法规或客户需求等。 * 示例:继续上例,假设生产每单位产品A需要2小时工时和1单位材料,产品B需要3小时工时和2单位材料。工厂总共有100小时工时和60单位材料可用。则约束条件为: $$ \begin{cases} 2x_1 + 3x_2 \le 100 & \text{(工时约束)} \\ x_1 + 2x_2 \le 60 & \text{(材料约束)} \end{cases} $$
3. 变量的边界或符号约束 (Variable Bounds / Sign Constraints) 这是对决策变量自身取值范围的规定,最常见的是非负约束。 * 示例:产量不能为负数,因此: $$ x_1 \ge 0, \quad x_2 \ge 0 $$
综上所述,一个完整的{{{线性规划}}} (Linear Programming) 模型就建立起来了。求解该模型的过程,就是找到一组满足所有约束条件和非负约束的 $(x_1, x_2)$ 的值,使得目标函数 $Z$ 达到最大。这组值 $(x_1^*, x_2^*)$ 就是该问题的{{{最优解}}} (Optimal Solution)。
## 简单建模实例:投资组合选择
假设一个投资者有 $100,000 的资金,可以投资于两种资产:股票 (Stock) 和债券 (Bond)。股票的预期年回报率为 8%,债券为 5%。为了分散风险,投资者决定: * 投资于股票的金额不能超过总资金的 70%。 * 投资于债券的金额至少为 $20,000。
目标是最大化年度总回报。
步骤 1:定义决策变量 我们首先需要确定什么是决策者可以控制的量。在这个问题中,是投入到两种资产中的资金数额。 * 设 $x_S$ 为投资于股票的金额。 * 设 $x_B$ 为投资于债券的金额。
步骤 2:建立目标函数 目标是最大化总回报。 * 总回报 = 股票回报 + 债券回报 $$ \text{Maximize } R = 0.08x_S + 0.05x_B $$
步骤 3:建立约束条件 * 总投资金额约束: $$ x_S + x_B \le 100000 $$ (我们使用 $\le$ 而非 $=$ 是因为投资者可以选择不投满所有资金) * 股票投资上限约束: $$ x_S \le 0.70 \times 100000 \implies x_S \le 70000 $$ * 债券投资下限约束: $$ x_B \ge 20000 $$ * 非负约束: $$ x_S \ge 0, \quad x_B \ge 0 $$
通过求解这个模型,我们就能得到 $x_S$ 和 $x_B$ 的最优值,从而为投资者提供最佳的投资决策。这个例子清晰地展示了决策变量是如何将一个实际问题转化为一个结构化的、可求解的数学问题的。