【最优化理论】线性规划标准模型的基本概念与性质

news2024/11/29 16:40:27

我们在中学阶段就遇到过线性规划问题,主要是二维的情况,而求解的方法一般是非常直观、高效的图解法。根据过往的经验,线性规划问题的最优目标值一般在可行域的顶点处取得,那么本文就对这个问题进行更深入的探讨,维度也从二维推广至高维,内容主要包括以下问题:

  • 线性规划问题的可行域有哪些性质?
  • 线性规划问题的可行域顶点有哪些特点?
  • 为什么可行域的顶点有最优解?
  • 顶点的数学描述?
  • 高维模型有哪些性质?

1. 线性规划模型的一些基本概念

为了便于描述,我们首先给出几个基本的概念:

  • 可行域(可行集):满足线性规划问题所有约束条件的决策变量集合称为可行集(图解法的过程中称为可行域)。
  • 可行解:在可行域内的解(决策变量)称为可行解。
  • 基本解:能够使线性规划问题的某些约束条件等式成立的解称为基本解。此时,等式成立的约束条件称为起作用的约束,其构成线性方程组得到唯一解,即基本解。注意:基本解不一定在可行域内,因为并不一定满足所有的约束条件。

补充:非齐次线性方程组 AX=b 有唯一解的条件是,系数矩阵与增广矩阵的秩相同且都等于 X 的维度n,即r( A A A) = r( A ^ \hat{A} A^) = n,其中增广矩阵 A ^ = [ A , b ] \hat{A} =[A, b] A^=[A,b]。详细说明过程可以参考博客:【线性代数】齐次与非齐次线性方程组有解的条件

  • 基本可行解:在可行域的基本解称为基本可行解。

在这里插入图片描述

直观而言,基本可行解就是可行域的顶点,且顶点个数总是有限的。

2. 线性规划问题的可行集与凸集

凸集和凸集顶点的定义

如果某个集合中任意两点连起来的直线都属于该集合,则称其为凸集,否则为非凸集,如下图所示:

凸集数学定义: Ω 是凸集,当且仅当对  ∀   0 < α < 1 和任意的 X 1 , X 2 ∈ Ω 均有下式成立: α X 1 + ( 1 − α ) X 2 ∈ Ω \Omega是凸集,当且仅当对~ \forall~0 < \alpha < 1 和 任意的 X_1, X_2 \in \Omega均有下式成立:\alpha X_1 + (1-\alpha)X_2 \in \Omega Ω是凸集,当且仅当对  0<α<1和任意的X1,X2Ω均有下式成立:αX1+(1α)X2Ω

如果凸集内的一点不在凸集内任何不同的两点连起来的直线上,则称该点为该凸集的顶点,如下所示:

在这里插入图片描述

凸集顶点的数学定义: X ∈ Ω 是凸集的顶点,当且仅当对不存在实数  0 < α < 1 和 X 1 , X 2 ∈ Ω , X 1 ≠ X 2 满足: X = α X 1 + ( 1 − α ) X 2 X\in\Omega是凸集的顶点,当且仅当对不存在实数~0 < \alpha < 1 和 X_1, X_2 \in \Omega,X_1\neq X_2满足:X = \alpha X_1 + (1-\alpha)X_2 XΩ是凸集的顶点,当且仅当对不存在实数 0<α<1X1,X2ΩX1=X2满足:X=αX1+(1α)X2

线性规划问题的多面体模型

根据该模型以及凸集的定义可以得到:

  • 线性规划多面体模型的可行集是凸集
  • 线性规划多面体模型的基本可行解是凸集的顶点

证明过程暂略。

3. 线性规划可行域的顶点中有最优解

我们分三种情况进行讨论,以说明可行域的顶点处一定有最优解。

第一种情况:如果可行解没有起作用约束(约束条件中不等式变为等式,则称该约束为起作用约束),即可行解是可行域的内点,那么沿着梯度方向必定可以改进目标函数,所以此时不可能是最优解,如下图所示。

第二种情况:如果可行解不是起作用约束的唯一解,则必定有非零向量和起作用约束的所有法线垂直(如下图蓝色点和蓝实线向量),那么此时将梯度方向投影到蓝色向量的垂直空间得到一个向量(红色向量),则沿此方向前进可以改进目标函数,因此该可行解不可能是最优解。

第三种情况:如果可行解不是起作用约束的唯一解,但梯度如下所示,和所有起作用约束的法线垂直,此时蓝点是最优解,但是沿着红色方向前进可以得到至少增加一个起作用约束的最优解,因此也可得到是最优解的顶点(此时目标函数有无穷多最优解)。

综上,基本可行解是线性规划问题的可行域顶点,该问题的最优解一定存在于基本可行解中。

4. 标准模型顶点的数学描述

回顾:线性规划的标准模型

线性规划标准模型的介绍,可以参考博客:【最优化理论】线性规划的标准模型与基本假定,这里简要回顾一下。
在最优化理论中考虑的线性规划标准模型为:

max ⁡    C T X     s.t.   A X = b ⃗            X ≥ 0 \max ~~C^TX ~~~ \\ \text{s.t.} ~~AX = \vec{b} \\ ~~~~~~~~~~X ≥ 0 max  CTX   s.t.  AX=b           X0

其中, C ∈ R n , X ∈ R n , A ∈ R m × n C \in R^n,X \in R^n,A \in R^{m\times n} CRn,XRn,ARm×n,并假定:

  1. 系数矩阵 A A A 的列数大于其行数,即 n > m;
  2. A A A 的行向量线性无关,即A行满秩。

max ⁡ C T X \max C^TX maxCTX 是该线性规划问题的目标函数, A X = b ⃗ AX = \vec{b} AX=b 是约束条件中的等式约束, X ≥ 0 X ≥ 0 X0 是对决策变量的非负性约束。

顶点的充要条件

线性规划标准模型的等式约束描述如下:
∑ j = 1 n a i j x j = b i ,   ∀   1 ≤ i ≤ m ⇒ ∑ j = 1 n [ a 1 j a 2 j ⋮ a m j ] x j = [ b 1 b 2 ⋮ b m ] ⇒ ∑ j = 1 n P j x j = b ⃗ , P j = ( a 1 j , ⋯   , a m j ) T , ∀   1 ≤ j ≤ n \sum_{j=1}^{n} a_{ij}x_j = b_i,~\forall~1\leq i \leq m \qquad \Rightarrow \qquad \sum_{j=1}^{n} \begin{bmatrix} a_{1j} \\ a_{2j} \\ \vdots \\ a_{mj} \end{bmatrix}x_j = \begin{bmatrix} b_{1} \\ b_{2} \\ \vdots \\ b_{m} \end{bmatrix} \\ \Rightarrow \sum_{j=1}^{n} P_{j}x_j = \vec{b}, \quad P_j = (a_{1j}, \cdots, a_{mj})^T, \quad \forall~1\leq j \leq n j=1naijxj=bi,  1imj=1n a1ja2jamj xj= b1b2bm j=1nPjxj=b ,Pj=(a1j,,amj)T, 1jn

根据标准模型的非负性约束条件可知,对于决策变量 X = ( x 1 , x 2 , . . . , x m ) T X = (x_1, x_2, ..., x_m)^T X=(x1,x2,...,xm)T,其分量 x j x_j xj 要么大于0,要么等于0,因此可以对任意的 X ∈ Ω X\in\Omega XΩ 进行如下划分(需注意:n > m):

x j > 0 , j = k ( 1 ) , k ( 2 ) , . . . , k ( m ^ ) ; x j = 0 , j = k ( m + 1 ^ ) , . . . , k ( n ) x_j > 0, j = k(1), k(2), ..., k(\hat{m}); \\ x_j = 0, j = k(\hat{m+1}), ..., k(n) xj>0,j=k(1),k(2),...,k(m^);xj=0,j=k(m+1^),...,k(n)

进而可以得到结论: 当且仅当 ∑ t = 1 m ^ P j ( t ) x j ( t ) = b ⃗ 的解唯一时, X 是顶点 . 当且仅当 \sum_{t=1}^{\hat{m}}P_{j(t)}x_{j(t)} = \vec{b}的解唯一时,X是顶点. 当且仅当t=1m^Pj(t)xj(t)=b 的解唯一时,X是顶点.

解释:因为基本可行解是所有起作用约束的唯一解,而起作用约束就是不等式变为等式的那些约束。

标准模型顶点的等价描述之一

如果把 X ∈ Ω = { X ∈ R n ∣ ∑ j = 1 n P j x j = b ⃗ ,   X ≥ 0 } X\in \Omega = \{X\in\R^n | \sum_{j=1}^{n}P_{j}x_j = \vec{b},~X\ge0 \} XΩ={XRnj=1nPjxj=b , X0} 的非零分量成为正分量,那么任何可行解是顶点的充分必要条件是:

其正分量对应的系数向量 P j 线性无关  ⇔  如果 X ∈ Ω 划分为 x j > 0 , j = k ( 1 ) , k ( 2 ) , . . . , k ( m ^ ) ; x j = 0 , j = k ( m + 1 ^ ) , . . . , k ( n ) 其为顶点的充要条件是 P j 线性无关 ( j = k ( 1 ) , . . . , k ( m ^ ) ) . 其正分量对应的系数向量P_j线性无关~\Leftrightarrow~如果 X\in\Omega划分为 \\ x_j > 0, j = k(1), k(2), ..., k(\hat{m}); \\ x_j = 0, j = k(\hat{m+1}), ..., k(n) \\其为顶点的充要条件是 P_j 线性无关(j=k(1), ..., k(\hat{m})). 其正分量对应的系数向量Pj线性无关  如果XΩ划分为xj>0,j=k(1),k(2),...,k(m^);xj=0,j=k(m+1^),...,k(n)其为顶点的充要条件是Pj线性无关(j=k(1),...,k(m^)).

标准模型顶点的等价描述之二

如果 ( P 1 , . . . , P n ) (P_1, ..., P_n) (P1,...,Pn) 是行满秩矩阵,那么 X X X是可行集 Ω = { X ∈ R n ∣ ∑ j = 1 n P j x j = b ⃗ ,   X ≥ 0 } \Omega = \{X\in\R^n | \sum_{j=1}^{n}P_{j}x_j = \vec{b},~X\ge0 \} Ω={XRnj=1nPjxj=b , X0} 的顶点充要条件是 :

存在可逆方阵 ( P k ( 1 ) , . . . , P k ( m ) ) ,可以把 X 的分量划分为 x k ( j ) , j = 1 , . . . , n ,使满足: [ x k ( 1 ) ⋮ x k ( m ) ] = ( P k ( 1 ) , . . . , P k ( m ) ) − 1 b ⃗   ; x k ( j ) = 0 ,   ∀ m + 1 ≤ j ≤ n 存在可逆方阵 \left(P_{k(1)}, ..., P_{k(m)}\right),可以把X的分量划分为x_{k(j)}, j = 1, ..., n,使满足:\\ \begin{bmatrix} x_{k(1)} \\ \vdots \\ x_{k(m)} \end{bmatrix} = \left(P_{k(1)}, ..., P_{k(m)}\right)^{-1} \vec{b}~;\quad x_{k(j)}=0,~\forall m+1 \leq j \leq n 存在可逆方阵(Pk(1),...,Pk(m)),可以把X的分量划分为xk(j),j=1,...,n,使满足: xk(1)xk(m) =(Pk(1),...,Pk(m))1b  ;xk(j)=0, m+1jn

说明:
对于 A X = b ⃗ ,   X ≥ 0 ,其中 A ∈ R m × n , m < n , A 行满秩,则  A X = b ⃗  可以分解为 : A X = b ⃗ ⇒ [ B N ] [ X B X N ] = b ⃗   ,  其中 B ∈ R m × m 可逆, N ∈ R m × ( n − m ) ,满足 B ⋅ X B + N ⋅ X N = b ⃗ ⇒ X B = B − 1 ⋅ b ⃗ ≥ 0 , X N = 0 ,则 X = [ X B T , X N T ] T 均是可行域的顶点 . 对于AX=\vec{b},~X\ge0,其中A\in R^{m\times n}, m<n,A行满秩,则~AX=\vec{b}~可以分解为:\\ AX=\vec{b} \quad \Rightarrow \quad [B\quad N] \begin{bmatrix} X_B \\ X_N \end{bmatrix} = \vec{b}~,~其中 B\in R^{m\times m}可逆,N\in R^{m\times (n-m)},满足\\ B\cdot X_B + N\cdot X_N = \vec{b} \\ \Rightarrow \quad X_B = B^{-1}\cdot \vec{b} \ge 0, X_N = 0,则X= [X_B^T, X_N^T]^T均是可行域的顶点. 对于AX=b , X0,其中ARm×n,m<n,A行满秩,则 AX=b  可以分解为:AX=b [BN][XBXN]=b  , 其中BRm×m可逆,NRm×(nm),满足BXB+NXN=b XB=B1b 0,XN=0,则X=[XBT,XNT]T均是可行域的顶点.

5. 线性规划标准模型的重要概念和性质

基阵、基本解和基本可行解

称可逆矩阵 ( P k ( 1 ) , . . . , P k ( m ) ) \left(P_{k(1)}, ..., P_{k(m)}\right) (Pk(1),...,Pk(m))为基阵B,称其分量由下式决定的 X X X基本解

[ x k ( 1 ) ⋮ x k ( m ) ] = ( P k ( 1 ) , . . . , P k ( m ) ) − 1 b ⃗   ; x k ( j ) = 0 ,   ∀ m + 1 ≤ j ≤ n \begin{bmatrix} x_{k(1)} \\ \vdots \\ x_{k(m)} \end{bmatrix} = \left(P_{k(1)}, ..., P_{k(m)}\right)^{-1} \vec{b}~;\quad x_{k(j)}=0,~\forall m+1 \leq j \leq n xk(1)xk(m) =(Pk(1),...,Pk(m))1b  ;xk(j)=0, m+1jn

需要注意的是,基本解有可能是相交在可行域外的顶点。我们称可行的基本解(在可行域内)为基本可行解;称基阵对应变量为基变量 X B X_B XB,其余变量为非基变量 X N X_N XN

线性规划标准模型的基本定理

  1. 一个标准模型的线性规划问题若有可行解,则至少存在一个基本可行解(顶点)
    证明思路:系数矩阵A行满秩,构造可逆矩阵B即可。
    注意:标准模型一定有顶点是因为有非负性条件约束。换句话说,如果一般(非标准模型)的线性规划问题有可行解,则并不一定有基本可行解(顶点),比如二维的例子: x 1 + x 2 = 3 x_1 + x_2=3 x1+x2=3,没有非负性约束,则可行域从负无穷延伸到正无穷,就没有顶点。

  2. 一个标准模型的线性规划问题若有有限的最优目标值,则一定存在一个基本可行解是最优解
    这个定理的等价描述是:若一个线性规划问题在两个顶点上达到最优值,则该线性规划问题必有无穷多个最优解。
    证明思路:可以用反证法。

至此,线性规划问题的理论分析已经结束,也就是说已经从数学上解决了线性规划问题,即只需要从顶点中搜索最优解即可。

但是,真正要将线性规划理论应用到实际中,还面临诸多工程问题,比如计算效率问题(求逆的运算量非常大)、如何使用计算机高效解决线性规划问题等等,因此后面会介绍在工程实践上最常用的算法——单纯形算法。需要注意的是,单纯形算法虽然应用广泛,但并没有任何数学上的贡献,而都是工程应用实践的贡献。当然,对于解决现实世界中问题而言,理论和实践都很重要。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1055179.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

找不到msvcp140.dll解决方法的5个解决方法以及msvcp140.dll丢失原因分析

msvcp140.dll 是 Microsoft Visual C 2017 Redistributable 的一部分&#xff0c;许多应用程序和游戏都需要这个动态链接库&#xff08;DLL&#xff09;才能正常运行。如果您的系统中找不到 msvcp140.dll&#xff0c;您可能会遇到无法打开某些应用程序或游戏的困境。小编将讨论…

运用动态内存实现通讯录(增删查改+排序)

目录 前言&#xff1a; 实现通讯录&#xff1a; 1.创建和调用菜单&#xff1a; 2.创建联系人信息和通讯录&#xff1a; 3.初始化通讯录&#xff1a; 4.增加联系人&#xff1a; 5.显示联系人&#xff1a; 6.删除联系人&#xff1a; ​编辑 7.查找联系人&#xff1a; ​…

nodejs+vue健身服务应用elementui

第三章 系统分析 10 3.1需求分析 10 3.2可行性分析 10 3.2.1技术可行性&#xff1a;技术背景 10 3.2.2经济可行性 11 3.2.3操作可行性&#xff1a; 11 3.3性能分析 11 3.4系统操作流程 12 3.4.1管理员登录流程 12 3.4.2信息添加流程 12 3.4.3信息删除流程 13 第四章 系统设计与…

AWS Lambda Golang HelloWorld 快速入门

操作步骤 以下测试基于 WSL2 Ubuntu 22.04 环境 # 下载最新 golang wget https://golang.google.cn/dl/go1.21.1.linux-amd64.tar.gz# 解压 tar -C ~/.local/ -xzf go1.21.1.linux-amd64.tar.gz# 配置环境变量 PATH echo export PATH$PATH:~/.local/go/bin >> ~/.bashrc …

【小沐学前端】Node.js实现基于Protobuf协议的WebSocket通信

文章目录 1、简介1.1 Node1.2 WebSocket1.3 Protobuf 2、安装2.1 Node2.2 WebSocket2.2.1 nodejs-websocket2.2.2 ws 2.3 Protobuf 3、代码测试3.1 例子1&#xff1a;websocket&#xff08;html&#xff09;3.1.1 客户端&#xff1a;yxy_wsclient1.html3.1.2 客户端&#xff1a…

绘制动图,金星木星月亮太阳绕圆

图&#x1f4ab; input绘制 行星 木星 太阳 地球 金星&#x1f4ab; 地球 月亮各自旋转 1年 角度 360.gif import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation import math import os# 设置中文字体 font_style 宋体 plt.rcParam…

11Spark

1.安装 anaconda 在官网上下载anaconda linux 后缀为.sh的安装包 运行sh ./Anaconda3-2021.05-Linux-x86_64.sh 安装过程&#xff1a; 输入yes后就安装完成了. 验证&#xff1a; 安装完成后, 退出SecureCRT 重新进来: 看到这个base开头表明安装好了. base是默认的虚拟环…

条件查询和数据查询

一、后端 1.controller层 package com.like.controller;import com.like.common.CommonDto; import com.like.entity.User; import com.like.service.UserService; import jakarta.annotation.Resource; import org.springframework.web.bind.annotation.GetMapping; import …

用于YOLO格式分割的咖啡叶病害数据集。

下载链接&#xff1a;https://download.csdn.net/download/qq_40840797/88389334 数据集&#xff0c;一共1164张照片 随机选取几张照片及对应的目标标签 因为健康&#xff0c;所以标签为空

【嵌入式】使用MultiButton开源库驱动按键并控制多级界面切换

目录 一 背景说明 二 参考资料 三 MultiButton开源库移植 四 设计实现--驱动按键 五 设计实现--界面处理 一 背景说明 需要做一个通过不同按键控制多级界面切换以及界面动作的程序。 查阅相关资料&#xff0c;发现网上大多数的应用都比较繁琐&#xff0c;且对于多级界面的…

十大常见排序算法详解(附Java代码实现和代码解析)

文章目录 十大排序算法⛅前言&#x1f331;1、排序概述&#x1f334;2、排序的实现&#x1f335;2.1 插入排序&#x1f433;2.1.1 直接插入排序算法介绍算法实现 &#x1f433;2.1.2 希尔排序算法介绍算法实现 &#x1f335;2.2 选择排序&#x1f433;2.2.1 选择排序算法介绍算…

结构体运算符重载

1.降序 struct Point{int x, y;//重载比较符bool operator < (const Point &a) const{return x > a.x;//当前元素大时&#xff0c;是降序} };2.升序 struct Point{int x, y;//重载比较符 // bool operator < (const Point &a) const{ // return x…

如何初始化一个vue项目

如何初始化一个vue项目 安装 vue-cli 后 ,终端执行 vue ui npm install vue-cli --save-devCLI 服务 | Vue CLI (vuejs.org) 等一段时间后 。。。 进入项目仪表盘 设置其他模块 项目构建后目录 vue.config.js 文件相关配置 官方vue.config.js 参考文档 https://cli.vuejs.o…

【vue3】Suspense组件和动态引入defineAsyncComponent的搭配使用

假期第五篇&#xff0c;对于基础的知识点&#xff0c;我感觉自己还是很薄弱的。 趁着假期&#xff0c;再去复习一遍 在app中定义子组件child //静态引入&#xff0c;网速慢的时候&#xff0c;父子组件也是同时渲染出来 <template><div><h3>APP父组件</…

BI神器Power Query(27)-- 使用PQ实现表格多列转换(3/3)

实例需求&#xff1a;原始表格包含多列属性数据,现在需要将不同属性分列展示在不同的行中&#xff0c;att1、att3、att5为一组&#xff0c;att2、att3、att6为另一组&#xff0c;数据如下所示。 更新表格数据 原始数据表&#xff1a; Col1Col2Att1Att2Att3Att4Att5Att6AAADD…

BI神器Power Query(26)-- 使用PQ实现表格多列转换(2/3)

实例需求&#xff1a;原始表格包含多列属性数据,现在需要将不同属性分列展示在不同的行中&#xff0c;att1、att3、att5为一组&#xff0c;att2、att3、att6为另一组&#xff0c;数据如下所示。 更新表格数据 原始数据表&#xff1a; Col1Col2Att1Att2Att3Att4Att5Att6AAADD…

APP或小程序突然打开显示连接网络失败,内容一片空白的原因是,SSL证书到期啦,续签即可

由于我们使用的是https&#xff0c;所以SSL证书到期了&#xff0c;通过https进入读取内容的APP或网站或小程序就会打开后连接网络失败&#xff0c;出现空白&#xff0c;这是因为我们申请的SSL证书到期了&#xff0c;因为我们申请的证书有效期有时是1个月或3个月&#xff0c;到期…

建筑能源管理(2)——建筑用能分类与计算方法

1、按输入建筑的能源形式分类 根据《民用建筑能耗分类及表示方法》GB/T 34913-2017&#xff0c;建筑用能边界位于建筑入口处(图2.2)&#xff0c;对应为满足建筑各项功能需求从外部输入的电力、燃料、冷/热量及可再生能源等&#xff0c;其中冷热量由外部区域能源系统制备&#…

2023年中国体育赛事行业现状及趋势分析:体育与科技逐步融合,推动产业高质量发展[图]

体育赛事运营是指组织体育赛事或获取赛事版权&#xff0c;并进行赛事推广营销、运营管理等一系列商业运作的运营活动。体育赛事运营相关业务主要包括赛事运营与营销、赛事版权运营两个部分。 体育赛事运营行业分类 资料来源&#xff1a;共研产业咨询&#xff08;共研网&#x…

线性代数+分治:446E

https://codeforces.com/problemset/problem/446/E 把官方题解翻译了一遍 考虑暴力&#xff0c;肯定想到dp&#xff0c;然后变成矩阵。设用代替 &#xff08;这样子数之间的差值不会变化&#xff0c;但对于问题的处理能方便很多&#xff09; 我们先令&#xff08;也就是初始…