博主智算菩萨,专注于人工智能、Python编程、音视频处理及UI窗体程序设计等方向。致力于以通俗易懂的方式拆解前沿技术,从零基础入门到高阶实战,陪伴开发者共同成长。目前已开设五大技术专栏,累计发布多篇原创技术文章,深受读者好评。

📌 专栏导航

  • 人工智能前沿知识(已更144篇):深度剖析Transformer架构、生成式AI、强化学习、具身智能、神经符号系统、大模型及智能体(Agent)技术,系统性解析AI核心技术体系与前沿趋势。
  • Python基础小白编程(已更232篇):从零开始,以保姆式教程讲解变量、数据类型、流程控制、函数等核心语法,配有大量实战代码与避坑指南,真正做到学以致用。
  • 机器学习与深度学习(125篇):系统化拆解线性模型、决策树、随机森林、梯度提升树、神经网络等算法原理与工程实践,覆盖从公式推导到代码实现的全链路内容。
  • 音频、图像与视频处理理论与实战(81篇):涵盖FFmpeg多媒体处理、audio_shop开源工具、ComfyUI-WanVideoWrapper视频生成等实用技术,从基础操作到高级应用一应俱全。
  • UI窗体程序设计实战(78篇):深入讲解UI设计、动态窗体生成、游戏UI框架设计等实战技巧,提供从配置到编码的完整解决方案。
    智算菩萨,以代码为经,以算法为纬,在人工智能的星辰大海中,做你前行路上最可靠的导航者。本人最常用的AI对话工具是AIGCBAR

1.1 运筹学的起源与发展

运筹学(Operational Research,简称OR)是一门应用科学,它运用分析、试验、量化的方法,对经济管理系统中的人力、物力、财力等资源进行统筹安排,为决策者提供有依据的最优方案,以实现最有效的管理。运筹学的英文名称"Operational Research"直译为"运作研究",这一名称最早出现在第二次世界大战期间的英国。当时,英国军方为了应对德国的军事威胁,组织了一批科学家参与军事作战的研究,这些科学家运用数学和逻辑方法分析军事行动,取得了显著的效果。战争结束后,运筹学的方法被逐步引入到工业、商业、政府管理等民用领域,并得到了迅速的发展。

运筹学的发展历程可以大致划分为以下几个阶段。第一阶段是萌芽期(20世纪30年代至40年代),这一时期运筹学主要服务于军事目的,英国科学家们在雷达部署、反潜作战、物资运输等方面做出了重要贡献。第二阶段是成长期(20世纪50年代至60年代),线性规划、非线性规划、动态规划、排队论等主要分支相继建立,运筹学开始形成系统的理论体系。1947年,George Dantzig提出了单纯形法,为线性规划的求解提供了有效工具,这是运筹学发展史上的里程碑事件。第三阶段是成熟期(20世纪70年代至今),随着计算机技术的飞速发展,运筹学的应用范围不断扩大,与计算机科学、人工智能等学科交叉融合,产生了许多新的研究方向和应用领域。

我国运筹学的发展始于20世纪50年代。1956年,在中国科学院力学研究所所长钱学森的倡导下,我国第一个运筹学小组成立。1957年,"运筹学"这一中文名称正式确定,取自《史记·高祖本纪》中"夫运筹帷幄之中,决胜于千里之外"之意,既体现了这门学科的核心思想,又赋予了深厚的中国文化内涵。此后,运筹学在我国逐步发展壮大,在国民经济各个领域发挥了重要作用。

从学科定位来看,运筹学是管理科学、系统科学和数学的交叉学科。它既不同于纯粹数学的抽象推理,也不同于工程技术的经验方法,而是强调用定量分析的方法解决实际问题。运筹学的核心思想是"最优化",即在给定的约束条件下,寻求使目标函数达到最优(最大或最小)的方案。这种思想贯穿于运筹学的各个分支,也是它区别于其他管理方法的关键特征。

1.2 运筹学的主要分支与知识体系

运筹学经过数十年的发展,已经形成了一个庞大而完整的知识体系,包含多个相对独立又相互联系的分支。根据研究对象和方法的不同,运筹学的主要分支可以归纳如下:

分支名称 英文名称 主要研究内容 典型应用场景
线性规划 Linear Programming 线性目标函数在线性约束下的优化 资源分配、生产计划
整数规划 Integer Programming 决策变量取整数值的优化问题 人员排班、设施选址
目标规划 Goal Programming 多目标冲突下的满意解求解 多目标决策问题
动态规划 Dynamic Programming 多阶段决策过程的优化 资源分配、路径优化
图与网络 Graph and Network 图论模型及网络优化 交通网络、通信网络
网络计划 Network Planning 项目进度安排与优化 工程项目管理
排队论 Queueing Theory 随机服务系统的性能分析 服务业、通信系统
存储论 Inventory Theory 存储系统的最优控制 库存管理、供应链
决策论 Decision Theory 不确定性下的决策方法 经营决策、投资决策
对策论 Game Theory 竞争与合作的策略分析 市场竞争、谈判博弈

这些分支虽然各有侧重,但都遵循运筹学解决问题的一般方法论。运筹学解决实际问题的一般步骤包括:第一,明确问题,确定研究目标和约束条件;第二,建立模型,将实际问题抽象为数学模型;第三,求解模型,运用适当的算法求出最优解或满意解;第四,解的检验,对模型和解进行验证和灵敏度分析;第五,解的实施,将最优方案付诸实践并跟踪反馈。这五个步骤构成了运筹学方法论的核心框架,也是学习运筹学时需要始终把握的主线。

值得注意的是,运筹学各分支之间并非完全割裂,而是存在密切的内在联系。例如,运输问题既可以看作线性规划的特殊情形,也可以用图论中的网络流方法求解;整数规划通常以线性规划为基础,通过附加整数约束来处理离散决策问题;动态规划与图论中的最短路径问题有着深刻的对应关系。理解这些联系有助于从整体上把握运筹学的知识体系,避免将各分支孤立地学习。

1.3 线性规划的基本概念

线性规划(Linear Programming,LP)是运筹学中研究最早、理论最完善、应用最广泛的一个分支。线性规划问题的一般提法是:在一组线性等式或不等式约束条件下,求一个线性目标函数的最大值或最小值。这里的"线性"有两层含义:一是目标函数是决策变量的线性函数,二是所有约束条件都是决策变量的线性等式或不等式。

线性规划问题的数学模型由三个基本要素构成。第一个要素是决策变量,它们是问题中需要确定的未知量,通常用 x 1 , x 2 , … , x n x_1, x_2, \ldots, x_n x1,x2,,xn 表示。决策变量的取值代表了一个具体的决策方案。第二个要素是目标函数,它是决策变量的线性函数,反映了决策者追求的目标,如利润最大化或成本最小化。目标函数通常记为 z = c 1 x 1 + c 2 x 2 + ⋯ + c n x n z = c_1x_1 + c_2x_2 + \cdots + c_nx_n z=c1x1+c2x2++cnxn,其中 c j c_j cj 称为价值系数。第三个要素是约束条件,它们是对决策变量取值的限制,通常表现为资源的有限性、技术的可行性或政策的约束性。约束条件的一般形式为 a i 1 x 1 + a i 2 x 2 + ⋯ + a i n x n ≤ b i a_{i1}x_1 + a_{i2}x_2 + \cdots + a_{in}x_n \leq b_i ai1x1+ai2x2++ainxnbi(或 ≥ \geq = = =),其中 a i j a_{ij} aij 称为技术系数, b i b_i bi 称为资源系数或右端常数。此外,决策变量通常要求非负,即 x j ≥ 0 x_j \geq 0 xj0,这称为非负约束。

线性规划问题的标准形式可以表示为:

max ⁡   z = c 1 x 1 + c 2 x 2 + ⋯ + c n x n \max \ z = c_1x_1 + c_2x_2 + \cdots + c_nx_n max z=c1x1+c2x2++cnxn

s.t. a 11 x 1 + a 12 x 2 + ⋯ + a 1 n x n = b 1 \text{s.t.} \quad a_{11}x_1 + a_{12}x_2 + \cdots + a_{1n}x_n = b_1 s.t.a11x1+a12x2++a1nxn=b1

a 21 x 1 + a 22 x 2 + ⋯ + a 2 n x n = b 2 \quad \quad a_{21}x_1 + a_{22}x_2 + \cdots + a_{2n}x_n = b_2 a21x1+a22x2++a2nxn=b2

⋮ \quad \quad \vdots

a m 1 x 1 + a m 2 x 2 + ⋯ + a m n x n = b m \quad \quad a_{m1}x_1 + a_{m2}x_2 + \cdots + a_{mn}x_n = b_m am1x1+am2x2++amnxn=bm

x 1 , x 2 , … , x n ≥ 0 \quad \quad x_1, x_2, \ldots, x_n \geq 0 x1,x2,,xn0

用矩阵形式可以更简洁地表示为:

max ⁡   z = c T x \max \ z = \mathbf{c}^T\mathbf{x} max z=cTx

s.t. A x = b , x ≥ 0 \text{s.t.} \quad A\mathbf{x} = \mathbf{b}, \quad \mathbf{x} \geq \mathbf{0} s.t.Ax=b,x0

其中 c = ( c 1 , c 2 , … , c n ) T \mathbf{c} = (c_1, c_2, \ldots, c_n)^T c=(c1,c2,,cn)T 是价值向量, x = ( x 1 , x 2 , … , x n ) T \mathbf{x} = (x_1, x_2, \ldots, x_n)^T x=(x1,x2,,xn)T 是决策变量向量, A = ( a i j ) m × n A = (a_{ij})_{m \times n} A=(aij)m×n 是技术系数矩阵, b = ( b 1 , b 2 , … , b m ) T \mathbf{b} = (b_1, b_2, \ldots, b_m)^T b=(b1,b2,,bm)T 是资源向量,且要求 b i ≥ 0 b_i \geq 0 bi0

将一般形式的线性规划问题转化为标准形式,需要做以下几种处理。对于目标函数为求最小值的情形,可以令 z ′ = − z z' = -z z=z,将求 min ⁡ z \min z minz 转化为求 max ⁡ z ′ \max z' maxz。对于不等式约束,若为 ≤ \leq 约束,则引入非负松弛变量 s i s_i si,将 a i 1 x 1 + ⋯ + a i n x n ≤ b i a_{i1}x_1 + \cdots + a_{in}x_n \leq b_i ai1x1++ainxnbi 转化为 a i 1 x 1 + ⋯ + a i n x n + s i = b i a_{i1}x_1 + \cdots + a_{in}x_n + s_i = b_i ai1x1++ainxn+si=bi;若为 ≥ \geq 约束,则引入非负剩余变量 e i e_i ei(也称过剩变量),将 a i 1 x 1 + ⋯ + a i n x n ≥ b i a_{i1}x_1 + \cdots + a_{in}x_n \geq b_i ai1x1++ainxnbi 转化为 a i 1 x 1 + ⋯ + a i n x n − e i = b i a_{i1}x_1 + \cdots + a_{in}x_n - e_i = b_i ai1x1++ainxnei=bi。对于无非负约束的变量 x j x_j xj(自由变量),可令 x j = x j + − x j − x_j = x_j^+ - x_j^- xj=xj+xj,其中 x j + ≥ 0 x_j^+ \geq 0 xj+0 x j − ≥ 0 x_j^- \geq 0 xj0。对于右端常数 b i < 0 b_i < 0 bi<0 的约束,只需将该约束两边同乘 − 1 -1 1 即可。

1.4 线性规划的图解法

对于只含两个决策变量的线性规划问题,可以使用图解法(也称几何法)来求解。图解法的基本思想是在二维平面上画出可行域和目标函数的等值线,通过观察等值线的移动方向来确定最优解。虽然图解法只适用于两个变量的简单问题,但它对于理解线性规划的基本概念和几何意义具有不可替代的作用。

图解法的具体步骤如下:第一步,在平面直角坐标系中,根据所有约束条件(包括非负约束)画出可行域。每个线性不等式约束对应平面上的一个半平面,所有半平面的交集就是可行域。第二步,画出目标函数的等值线。令目标函数 z = c 1 x 1 + c 2 x 2 z = c_1x_1 + c_2x_2 z=c1x1+c2x2 等于某个常数 z 0 z_0 z0,得到一条直线,这条直线上的所有点对应的目标函数值都等于 z 0 z_0 z0。第三步,确定等值线的移动方向。沿梯度方向 ∇ z = ( c 1 , c 2 ) \nabla z = (c_1, c_2) z=(c1,c2) 移动等值线,目标函数值增大;沿负梯度方向移动,目标函数值减小。第四步,沿最优方向平移等值线,直到等值线与可行域的最后一个交点,该交点即为最优解。

线性规划问题的解有几种可能的情况。第一种情况是有唯一最优解,此时最优解在可行域的某个顶点处取得。第二种情况是有无穷多最优解(多重最优解),此时目标函数的等值线与可行域的某条边界平行,最优解在一条线段上取得。第三种情况是无界解,即可行域无界,目标函数值可以无限增大(求最大值时)或无限减小(求最小值时),这通常意味着模型缺少必要的约束条件。第四种情况是无解(无可行解),即约束条件相互矛盾,可行域为空集,这通常意味着模型建立有误。

关于线性规划解的一个重要定理是:如果线性规划问题有最优解,则最优解一定在可行域的顶点处取得。这个定理具有重要的理论和实践意义。它告诉我们,寻找最优解不需要遍历可行域中的所有点,而只需要检查可行域的有限个顶点即可。这正是单纯形法的理论基础——单纯形法本质上就是一种从一个顶点出发,沿着可行域的边界逐步移动到更优顶点的迭代算法。

可行域的顶点在代数上对应着基本可行解。所谓基本可行解,是指在标准形式的线性规划问题中,令 n − m n-m nm 个变量等于零(非基变量),由 m m m 个方程解出其余 m m m 个变量(基变量),且所有基变量的值均非负的解。基本可行解中取非零值的变量称为基变量,取零值的变量称为非基变量。如果基本可行解中恰好有 m m m 个基变量取正值,则称为非退化的基本可行解;如果某些基变量也取零值,则称为退化的基本可行解。

1.5 线性规划建模实例

建立线性规划模型是解决实际问题的第一步,也是最关键的一步。一个好的模型应该既能准确地反映实际问题的本质特征,又具有适当的复杂度以便于求解。下面通过几个典型的建模实例来说明线性规划建模的基本方法和技巧。

生产计划问题:某工厂生产甲、乙两种产品,需要消耗A、B、C三种资源。生产单位甲产品需要A资源2单位、B资源1单位、C资源1单位,可获利润3万元;生产单位乙产品需要A资源1单位、B资源2单位、C资源1单位,可获利润5万元。工厂现有A资源8单位、B资源8单位、C资源5单位。问如何安排生产计划使总利润最大?

设甲产品产量为 x 1 x_1 x1,乙产品产量为 x 2 x_2 x2,则线性规划模型为:

max ⁡   z = 3 x 1 + 5 x 2 \max \ z = 3x_1 + 5x_2 max z=3x1+5x2

s.t. 2 x 1 + x 2 ≤ 8 \text{s.t.} \quad 2x_1 + x_2 \leq 8 s.t.2x1+x28

x 1 + 2 x 2 ≤ 8 \quad \quad x_1 + 2x_2 \leq 8 x1+2x28

x 1 + x 2 ≤ 5 \quad \quad x_1 + x_2 \leq 5 x1+x25

x 1 , x 2 ≥ 0 \quad \quad x_1, x_2 \geq 0 x1,x20

配料问题:某饲料厂用三种原料配制混合饲料,要求每批饲料中蛋白质含量不低于12单位,脂肪含量不低于8单位,淀粉含量不低于20单位。三种原料的单位价格及营养成分含量如下表所示。问如何配料使总成本最低?

原料 蛋白质 脂肪 淀粉 单价(元)
原料1 3 2 4 10
原料2 2 4 3 8
原料3 1 1 5 6

设三种原料的用量分别为 x 1 , x 2 , x 3 x_1, x_2, x_3 x1,x2,x3,则模型为:

min ⁡   z = 10 x 1 + 8 x 2 + 6 x 3 \min \ z = 10x_1 + 8x_2 + 6x_3 min z=10x1+8x2+6x3

s.t. 3 x 1 + 2 x 2 + x 3 ≥ 12 \text{s.t.} \quad 3x_1 + 2x_2 + x_3 \geq 12 s.t.3x1+2x2+x312

2 x 1 + 4 x 2 + x 3 ≥ 8 \quad \quad 2x_1 + 4x_2 + x_3 \geq 8 2x1+4x2+x38

4 x 1 + 3 x 2 + 5 x 3 ≥ 20 \quad \quad 4x_1 + 3x_2 + 5x_3 \geq 20 4x1+3x2+5x320

x 1 , x 2 , x 3 ≥ 0 \quad \quad x_1, x_2, x_3 \geq 0 x1,x2,x30

投资问题:某投资者有10万元资金,拟在4个项目上进行投资。各项目的年收益率和风险系数如下表所示。投资者希望年总收益率不低于15%,同时总风险不超过20。各项目的投资额为非负数,问如何分配投资使总投资额最小?

项目 年收益率 风险系数
项目1 0.20 0.05
项目2 0.15 0.03
项目3 0.10 0.02
项目4 0.25 0.08

这类问题的建模关键在于正确识别决策变量、目标函数和约束条件。决策变量的设定要便于表达目标和约束;目标函数要准确反映决策者的优化目标;约束条件要全面反映各种限制,既不能遗漏重要约束,也不能添加冗余约束。

1.6 线性规划的基本定理

线性规划的基本定理是整个线性规划理论的基石,它揭示了可行域的几何结构与基本可行解之间的深刻联系,也为单纯形法提供了理论依据。线性规划的基本定理包含以下三个重要结论。

定理一(可行域的凸性):线性规划问题的可行域是一个凸集。凸集的定义是:如果集合 S S S 中任意两点 x 1 \mathbf{x}^1 x1 x 2 \mathbf{x}^2 x2 的凸组合 λ x 1 + ( 1 − λ ) x 2 \lambda \mathbf{x}^1 + (1-\lambda)\mathbf{x}^2 λx1+(1λ)x2 0 ≤ λ ≤ 1 0 \leq \lambda \leq 1 0λ1)仍然属于 S S S,则称 S S S 为凸集。由于每个线性不等式约束对应的半平面都是凸集,而凸集的交集仍然是凸集,因此线性规划问题的可行域一定是凸集。可行域的凸性保证了局部最优解就是全局最优解,这是线性规划问题的一个重要性质。

定理二(顶点与基本可行解的对应):线性规划问题可行域的顶点与基本可行解一一对应。这个定理建立了可行域的几何概念(顶点)与代数概念(基本可行解)之间的桥梁。在几何上,顶点是可行域中不能表示为可行域内其他两点凸组合的点;在代数上,基本可行解是令 n − m n-m nm 个变量为零后由方程组确定的非负解。这个对应关系意味着,我们可以通过代数方法(求基本可行解)来找到可行域的所有顶点。

定理三(最优解的存在性):如果线性规划问题有最优解,则至少有一个最优解在可行域的顶点处取得。这个定理是单纯形法的理论基础。由于可行域的顶点只有有限个(最多 C n m C_n^m Cnm 个),因此我们只需要检查有限个顶点就可以找到最优解,而不需要在无限多个可行解中搜索。单纯形法正是利用这一性质,从一个顶点出发,沿着使目标函数值改善的方向移动到相邻顶点,直到找到最优解。

这三个定理共同构成了线性规划的理论框架。定理一保证了线性规划问题的可行域具有良好的几何性质;定理二建立了几何与代数的联系,使得我们可以用代数方法处理几何问题;定理三则将最优解的搜索范围从无限集缩小到有限集,为有效算法的设计提供了理论依据。

1.7 线性规划模型的标准化与转化技巧

在实际应用中,线性规划模型的形式多种多样,但为了统一处理和求解,需要将各种形式的模型转化为标准形式。模型转化的过程需要掌握一些基本技巧,这些技巧不仅在理论上重要,在实际建模中也经常用到。

首先,目标函数的转化。如果原问题是求最小值 min ⁡ z = c T x \min z = \mathbf{c}^T\mathbf{x} minz=cTx,可以转化为求最大值 max ⁡ z ′ = − c T x \max z' = -\mathbf{c}^T\mathbf{x} maxz=cTx。这是因为 min ⁡ z \min z minz max ⁡ ( − z ) \max(-z) max(z) 具有相同的最优解,只是最优值相差一个负号。转化后求得的最优值需要再取负才是原问题的最优值。这种转化方法简单有效,是处理目标函数方向问题的标准做法。

其次,约束条件的转化。对于 ≤ \leq 型约束 a i 1 x 1 + ⋯ + a i n x n ≤ b i a_{i1}x_1 + \cdots + a_{in}x_n \leq b_i ai1x1++ainxnbi,引入松弛变量 s i ≥ 0 s_i \geq 0 si0,转化为 a i 1 x 1 + ⋯ + a i n x n + s i = b i a_{i1}x_1 + \cdots + a_{in}x_n + s_i = b_i ai1x1++ainxn+si=bi。松弛变量的经济含义是资源的剩余量,即未被使用的资源数量。对于 ≥ \geq 型约束 a i 1 x 1 + ⋯ + a i n x n ≥ b i a_{i1}x_1 + \cdots + a_{in}x_n \geq b_i ai1x1++ainxnbi,引入剩余变量 e i ≥ 0 e_i \geq 0 ei0,转化为 a i 1 x 1 + ⋯ + a i n x n − e i = b i a_{i1}x_1 + \cdots + a_{in}x_n - e_i = b_i ai1x1++ainxnei=bi。剩余变量的经济含义是超出最低要求的数量。松弛变量和剩余变量在单纯形法中起着重要作用,它们不仅使约束条件标准化,还提供了初始基本可行解的基变量。

第三,自由变量的处理。如果某个决策变量 x j x_j xj 没有非负约束(即 x j x_j xj 可正可负),则令 x j = x j + − x j − x_j = x_j^+ - x_j^- xj=xj+xj,其中 x j + ≥ 0 x_j^+ \geq 0 xj+0 x j − ≥ 0 x_j^- \geq 0 xj0。这种替换的合理性在于:任何实数都可以表示为两个非负数之差。替换后,模型中变量 x j x_j xj 出现的地方都用 x j + − x j − x_j^+ - x_j^- xj+xj 代替,变量的个数增加了1个,但所有变量都有了非负约束。

第四,绝对值约束的处理。如果约束中包含绝对值,如 ∣ x 1 − x 2 ∣ ≤ d |x_1 - x_2| \leq d x1x2d,可以转化为两个不等式约束: x 1 − x 2 ≤ d x_1 - x_2 \leq d x1x2d x 2 − x 1 ≤ d x_2 - x_1 \leq d x2x1d。这种转化保持了线性性质,使得问题仍然可以用线性规划方法求解。

第五,比例约束的处理。如果约束条件为 x 1 : x 2 = a : b x_1 : x_2 = a : b x1:x2=a:b(即 x 1 x_1 x1 x 2 x_2 x2 的比例为 a : b a:b a:b),可以转化为 b x 1 = a x 2 bx_1 = ax_2 bx1=ax2 b x 1 − a x 2 = 0 bx_1 - ax_2 = 0 bx1ax2=0。这是一个等式约束,可以直接加入标准形式中。

下面通过一个综合例子来演示模型转化的过程。考虑以下线性规划问题:

min ⁡   z = 2 x 1 − 3 x 2 + x 3 \min \ z = 2x_1 - 3x_2 + x_3 min z=2x13x2+x3

s.t. x 1 + x 2 − x 3 ≤ 7 \text{s.t.} \quad x_1 + x_2 - x_3 \leq 7 s.t.x1+x2x37

2 x 1 − x 2 + 3 x 3 ≥ 5 \quad \quad 2x_1 - x_2 + 3x_3 \geq 5 2x1x2+3x35

x 1 + x 2 + x 3 = 4 \quad \quad x_1 + x_2 + x_3 = 4 x1+x2+x3=4

x 1 ≥ 0 , x 3 ≥ 0 , x 2  无约束 \quad \quad x_1 \geq 0, x_3 \geq 0, x_2 \text{ 无约束} x10,x30,x2 无约束

转化步骤如下:令 z ′ = − z z' = -z z=z,将求 min ⁡ z \min z minz 转化为求 max ⁡ z ′ \max z' maxz;令 x 2 = x 2 + − x 2 − x_2 = x_2^+ - x_2^- x2=x2+x2,其中 x 2 + , x 2 − ≥ 0 x_2^+, x_2^- \geq 0 x2+,x20;对第一个约束引入松弛变量 s 1 s_1 s1;对第二个约束引入剩余变量 e 2 e_2 e2。转化后的标准形式为:

max ⁡   z ′ = − 2 x 1 + 3 x 2 + − 3 x 2 − − x 3 \max \ z' = -2x_1 + 3x_2^+ - 3x_2^- - x_3 max z=2x1+3x2+3x2x3

s.t. x 1 + x 2 + − x 2 − − x 3 + s 1 = 7 \text{s.t.} \quad x_1 + x_2^+ - x_2^- - x_3 + s_1 = 7 s.t.x1+x2+x2x3+s1=7

2 x 1 − x 2 + + x 2 − + 3 x 3 − e 2 = 5 \quad \quad 2x_1 - x_2^+ + x_2^- + 3x_3 - e_2 = 5 2x1x2++x2+3x3e2=5

x 1 + x 2 + − x 2 − + x 3 = 4 \quad \quad x_1 + x_2^+ - x_2^- + x_3 = 4 x1+x2+x2+x3=4

x 1 , x 2 + , x 2 − , x 3 , s 1 , e 2 ≥ 0 \quad \quad x_1, x_2^+, x_2^-, x_3, s_1, e_2 \geq 0 x1,x2+,x2,x3,s1,e20

1.8 线性规划的经济解释

线性规划模型不仅有严格的数学意义,还具有丰富的经济含义。理解这些经济含义有助于更好地建立和解释模型,也为后续学习对偶理论和灵敏度分析奠定基础。

目标函数中的价值系数 c j c_j cj 表示决策变量 x j x_j xj 每增加一个单位对目标函数的贡献。在利润最大化问题中, c j c_j cj 就是产品 j j j 的单位利润;在成本最小化问题中, c j c_j cj 就是活动 j j j 的单位成本。价值系数的大小直接影响最优解的选择,价值系数越大的变量在最优解中越可能取正值。

约束条件中的技术系数 a i j a_{ij} aij 表示活动 j j j 每消耗一单位资源 i i i 的数量,也称为投入产出系数。技术系数反映了生产技术水平和资源利用效率,是连接决策变量和资源约束的桥梁。技术系数的变化可能影响可行域的形状,从而影响最优解。

右端常数 b i b_i bi 表示第 i i i 种资源的可用量。 b i b_i bi 的变化直接影响可行域的大小和位置。当 b i b_i bi 增大时,可行域可能扩大,最优解可能改善;当 b i b_i bi 减小时,可行域可能缩小,最优解可能变差。右端常数变化对最优值的影响程度就是影子价格(对偶变量的值),这将在对偶理论中详细讨论。

松弛变量的值表示资源的剩余量。在最优解中,如果某个松弛变量为正,说明对应的资源有剩余,这种资源称为"非瓶颈资源";如果松弛变量为零,说明对应的资源被完全利用,这种资源称为"瓶颈资源"或"稀缺资源"。增加瓶颈资源的供应量可能改善最优值,而增加非瓶颈资源的供应量不会改变最优值。

线性规划的经济解释还涉及机会成本的概念。在最优解中,某个非基变量 x j x_j xj 的机会成本(也称检验数或缩减成本)表示:如果强迫 x j x_j xj 从零增加到1,目标函数值将减少(对求最大值问题)多少。机会成本为正的非基变量不应该进入基,因为引入它会降低目标函数值;只有机会成本为负的非基变量才值得引入。这个概念是单纯形法中变量选择规则的经济基础。

1.9 线性规划的应用领域

线性规划的应用范围极为广泛,几乎涵盖了国民经济和社会管理的各个领域。以下列举一些典型的应用领域和案例。

在工业生产领域,线性规划被广泛用于生产计划与调度。例如,某钢铁企业需要确定各种钢材产品的最优生产方案,在设备能力、原材料供应、市场需求等约束下,使总利润最大化。又如,某石油炼制企业需要确定各种油品的调合比例,在质量指标和产量要求的约束下,使生产成本最小化。这些问题的共同特点是:资源有限、目标明确、约束条件可以线性化近似。

在交通运输领域,线性规划是解决运输问题和分配问题的基本工具。运输问题研究如何将产品从若干产地运往若干销地,使总运费最小。分配问题研究如何将 n n n 项任务分配给 n n n 个人,使总效率最高。这些问题都可以归结为特殊的线性规划问题,有专门的高效算法。

在农业领域,线性规划用于制定种植计划和饲料配方。种植计划问题需要考虑土地面积、劳动力、水资源、市场需求等约束,确定各种作物的最优种植面积。饲料配方问题需要在满足营养需求的前提下,选择成本最低的原料组合。

在金融领域,线性规划用于投资组合优化和风险管理。虽然经典的Markowitz投资组合模型是二次规划,但在某些简化假设下可以转化为线性规划。此外,线性规划还广泛应用于银行资产负债管理、保险精算等问题。

在军事领域,线性规划用于兵力部署、物资调运、武器配置等问题。事实上,运筹学正是在军事需求的推动下诞生的,军事应用至今仍是运筹学的重要领域。

在环境保护领域,线性规划用于污染控制、资源分配等问题。例如,如何在各排放源之间分配排污权,使总治理成本最小同时满足环境质量标准。

1.10 例题精选

  1. 运筹学的英文名称"Operational Research"最早出现在哪个国家?

A. 美国  B. 英国  C. 德国  D. 法国

答案:B。运筹学的英文名称最早出现在第二次世界大战期间的英国,当时英国军方组织科学家参与军事作战研究。

  1. 下列哪个不是线性规划问题标准形式的要求?

A. 目标函数求最大值  B. 所有约束为等式  C. 所有变量非负  D. 价值系数为正

答案:D。标准形式要求目标函数求最大值、约束为等式、变量非负,但对价值系数没有正负要求。

  1. 在线性规划的图解法中,如果目标函数的等值线与可行域的某条边界平行,则该问题可能:

A. 有唯一最优解  B. 有无穷多最优解  C. 无界解  D. 无可行解

答案:B。当等值线与可行域边界平行时,最优解可能在该边界线段上取得,从而有无穷多最优解。

  1. 线性规划问题的可行域一定是:

A. 凸集  B. 凹集  C. 任意集合  D. 空集

答案:A。线性规划问题的可行域是有限个半空间的交集,而半空间是凸集,凸集的交集仍然是凸集。

  1. 如果线性规划问题有最优解,则最优解一定在可行域的何处取得?

A. 内部  B. 边界上任意点  C. 顶点处  D. 中心点

答案:C。根据线性规划基本定理,如果线性规划问题有最优解,则至少有一个最优解在可行域的顶点处取得。

  1. 将约束 3 x 1 + 2 x 2 ≤ 10 3x_1 + 2x_2 \leq 10 3x1+2x210 转化为标准形式,应引入:

A. 松弛变量 s ≥ 0 s \geq 0 s0,变为 3 x 1 + 2 x 2 + s = 10 3x_1 + 2x_2 + s = 10 3x1+2x2+s=10  B. 剩余变量 e ≥ 0 e \geq 0 e0,变为 3 x 1 + 2 x 2 − e = 10 3x_1 + 2x_2 - e = 10 3x1+2x2e=10  C. 人工变量 a ≥ 0 a \geq 0 a0,变为 3 x 1 + 2 x 2 + a = 10 3x_1 + 2x_2 + a = 10 3x1+2x2+a=10  D. 不需要引入任何变量

答案:A。 ≤ \leq 型约束应引入松弛变量,将不等式转化为等式。

  1. 对于自由变量 x j x_j xj(无非负约束),标准处理方法是:

A. 令 x j = 0 x_j = 0 xj=0  B. 令 x j = x j + − x j − x_j = x_j^+ - x_j^- xj=xj+xj,其中 x j + , x j − ≥ 0 x_j^+, x_j^- \geq 0 xj+,xj0  C. 去掉该变量  D. 令 x j = ∣ x j ′ ∣ x_j = |x_j'| xj=xj

答案:B。自由变量通过差替换转化为两个非负变量之差,保持问题的等价性。

  1. 在最优解中,某约束对应的松弛变量为零,说明该资源是:

A. 有剩余的资源  B. 瓶颈资源(稀缺资源)  C. 不重要的资源  D. 无限资源

答案:B。松弛变量为零意味着该资源被完全利用,是制约生产的瓶颈。

  1. 线性规划问题无可行解意味着:

A. 最优解为无穷大  B. 约束条件相互矛盾  C. 只有一个最优解  D. 有无穷多最优解

答案:B。无可行解说明所有约束条件没有公共的可行区域,即约束条件之间存在矛盾。

  1. 下列关于基本可行解的说法,正确的是:

A. 基本可行解中所有变量都取正值  B. 基本可行解中基变量的个数等于约束方程的个数  C. 基本可行解一定是退化的  D. 基本可行解中非基变量可以取非零值

答案:B。基本可行解中基变量的个数等于约束方程的个数 m m m,非基变量取零值,基变量取非负值。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐