线性规划中可行域为什么一定是凸的--证明

news2024/11/24 8:54:12

线性规划中的凸性证明

线性规划中可行域是凸的,这是自然能够想到和容易理解的道理。直观上,线性约束定义的可行域是由半平面的交集构成的,这些半平面的交集总是形成凸区域。

这么一个自然想到、容易理解的道理,怎么从数学上完备地证明它?下面的内容为此作答。

准备知识:

凸集的定义:如果集合 C C C中任意两点 X 1 X_1 X1 X 2 X_2 X2,其连线上的所有点也都在集合 C C C中,称 C C C为凸集.

为了更好地理解凸集,下面给出一些凸集和凹集的示例:

线性规划的标准型

m a x z = ∑ j = 1 n c j x j s . t . { ∑ j = 1 n a i j x j = b j x j ≥ 0 max \quad z= \sum_{j=1}^{n}c_{j}x_j \\ s.t. \left\{\begin{array}{l} {\sum_{j=1}^{n}a_{ij}x_j=b_j} \\ x_j \ge 0 \\ \end{array}\right. maxz=j=1ncjxjs.t.{j=1naijxj=bjxj0

证明

命题:如果线性规划中存在可行解,则可行解组成的可行域是凸集。

证明思路:任意假设两个可行解,证明其连线上的所有点仍属于可行域,即满足约束。

证明过程
步骤一:设任意两点,并给出满足约束的方程

  • X 1 = ( x 11 , x 12 , … , x 1 n ) T X_1=(x_{11},x_{12},\dots,x_{1n})^T X1=(x11,x12,,x1n)T, X 2 = ( x 21 , x 22 , … , x 2 n ) T X_2=(x_{21},x_{22},\dots,x_{2n})^T X2=(x21,x22,,x2n)T为可行域内任意两点,其满足
    { ∑ j = 1 n a i j x 1 j = b j ∑ j = 1 n a i j x 2 j = b j \left\{\begin{array}{l} \sum_{j=1}^n a_{ij}x_{1j}=b_j \\ \sum_{j=1}^n a_{ij}x_{2j}=b_j \\ \end{array}\right. {j=1naijx1j=bjj=1naijx2j=bj

步骤二:设连线上的任意一点,并给出与两点的关系方程

  • 连线上的任意点 X = ( x 1 , x 2 , … , x n ) T X=(x_{1},x_{2},\dots,x_{n})^T X=(x1,x2,,xn)T 的表示
    X = k ( X 1 − X 2 ) + X 2 , 0 ≤ k ≤ 1 X=k(X_1-X_2)+X_2, \quad 0 \leq k \leq1 X=k(X1X2)+X2,0k1
    这一步如果不好理解,可以看下面的解释:
    在这里插入图片描述

步骤三:判断 X X X 是否满足约束条件
∑ j = 1 n a i j x j = ∑ j = 1 n a i j ( k ( x 1 j − x 2 j ) + x 2 j ) = k ∑ j = 1 n a i j x 1 j − k ∑ j = 1 n a i j x 2 j + ∑ j = 1 n a i j x 2 j = k b j − k b j + b j = b j \begin{aligned} \sum_{j=1}^n a_{ij}x_{j}&=\sum_{j=1}^n a_{ij}(k(x_{1j}-x_{2j})+x_{2j}) \\ &= k\sum_{j=1}^n a_{ij} x_{1j} - k\sum_{j=1}^n a_{ij} x_{2j} + \sum_{j=1}^n a_{ij} x_{2j} \\ &= k b_j - k b_j + b_j \\ & = b_j \end{aligned} j=1naijxj=j=1naij(k(x1jx2j)+x2j)=kj=1naijx1jkj=1naijx2j+j=1naijx2j=kbjkbj+bj=bj
因此, X X X 在可行域内。这证明了连线上的任意点均在可行域内,即可行域是凸集。

证毕!


参考资料:

  • 胡运权主编的第五版《运筹学教程》

文档源码:

## 线性规划中的凸性证明
**线性规划中可行域是凸的**,这是自然能够想到和容易理解的道理。直观上,线性约束定义的可行域是由半平面的交集构成的,这些半平面的交集总是形成凸区域。

这么一个自然想到、容易理解的道理,怎么从数学上完备地证明它?下面的内容为此作答。
### 准备知识:
**凸集的定义**:如果集合$C$中任意两点$X_1$和$X_2$,其连线上的所有点也都在集合$C$中,称$C$为凸集.
<p align = "center">    
<img  src="https://i-blog.csdnimg.cn/direct/c36979ba43054a219a993520e58b5f2f.png" width="200" />
</p>

为了更好地理解凸集,下面给出一些凸集和凹集的示例:
<p align = "center">    
<img  src="https://i-blog.csdnimg.cn/direct/29b80fec3fb341fc8bad74738821ef4f.png" width="200" />
</p>

**线性规划的标准型**:

$$max \quad z= \sum_{j=1}^{n}c_{j}x_j \\
s.t. \left\{\begin{array}{l}
{\sum_{j=1}^{n}a_{ij}x_j=b_j} \\
x_j \ge 0 \\
\end{array}\right.$$

### 证明
命题:如果线性规划中存在可行解,则可行解组成的可行域是凸集。

证明思路:任意假设两个可行解,证明其连线上的所有点仍属于可行域,即满足约束。

证明过程
步骤一:**设任意两点,并给出满足约束的方程**
- 设$X_1=(x_{11},x_{12},\dots,x_{1n})^T$,$X_2=(x_{21},x_{22},\dots,x_{2n})^T$为可行域内任意两点,其满足
$$\left\{\begin{array}{l}
\sum_{j=1}^n a_{ij}x_{1j}=b_j \\
\sum_{j=1}^n a_{ij}x_{2j}=b_j \\
\end{array}\right.$$

步骤二:**设连线上的任意一点,并给出与两点的关系方程**
- 连线上的任意点 $X=(x_{1},x_{2},\dots,x_{n})^T$ 的表示
$$X=k(X_1-X_2)+X_2, \quad 0 \leq k \leq1$$
这一步如果不好理解,可以看下面的解释:
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d3d7473352704642bd4e6503e0a0ad75.png)

步骤三:**判断 $X$ 是否满足约束条件**
$$ \begin{aligned} 
\sum_{j=1}^n a_{ij}x_{j}&=\sum_{j=1}^n a_{ij}(k(x_{1j}-x_{2j})+x_{2j}) \\
&= k\sum_{j=1}^n a_{ij} x_{1j} - k\sum_{j=1}^n a_{ij} x_{2j} + \sum_{j=1}^n a_{ij} x_{2j} \\
&= k b_j - k b_j + b_j \\
& = b_j
\end{aligned}$$
因此,$X$ 在可行域内。这证明了连线上的任意点均在可行域内,即可行域是凸集。

证毕!

---
参考资料:
- 胡运权主编的第五版《运筹学教程》

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

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

相关文章

机器翻译与数据集_by《李沐:动手学深度学习v2》pytorch版

系列文章目录 文章目录 系列文章目录介绍机器翻译下载和预处理数据集词元化词表加载数据集训练模型对上述代码中出现的Vocab进行总体解释和逐行解释使用场景 小结练习答案1. num_examples 参数对词表大小的影响2. 对于没有单词边界的语言&#xff0c;单词级词元化的有效性 介绍…

低代码平台后端搭建-阶段完结

前言 最近又要开始为跳槽做准备了&#xff0c;发现还是写博客学的效率高点&#xff0c;在总结其他技术栈之前准备先把这个专题小完结一波。在这一篇中我又试着添加了一些实际项目中可能会用到的功能点&#xff0c;用来验证这个平台的扩展性&#xff0c;以及总结一些学过的知识。…

Ngnix 在windows上的简单使用

安装 下载链接: nginx: download 选择页面中 Stable version 下的windows版本直接下载解压到本地。 运行nginx: 解压到本地后,结构如图: cmd 进入到上图的根目录,运行 start nginx ,即可开启。 打开 http://localhost 进行查看,如果正常打开nginx的测试页面,则说…

Nvidia的高级研究科学家Jim Fan预计在未来两到三年内,机器人技术将取得重大进展

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

pcdn盒子连接方式

连接方式 大部分连接方式如下 光猫拨号 → 路由器 → 盒子 优点&#xff1a;光猫负责拨号&#xff0c;路由器只需做路由转发&#xff0c;性能要求不高缺点&#xff1a;光猫会有一层nat&#xff0c;路由器还有一层nat&#xff0c;两层nat需要在两个设备上都做nat优化注意&…

mysql通过binlog做数据恢复

1 介绍 binlog&#xff08;二进制日志&#xff09;在 MySQL 中具有非常重要的作用。它记录了数据库的所有更改操作&#xff0c;主要用于数据恢复、复制和审计等方面。以下是 binlog 的主要作用&#xff1a; 1.数据恢复 binlog 可以用于恢复数据库中的数据。当数据库发生故障时…

Activiti7《第三式:破刀式》——工作流中的刀锋利刃

冲冲冲&#xff01;开干 这篇文章将分为九个篇章&#xff0c;带你逐步掌握工作流的核心知识。欢迎来到 “破刀式” 篇章&#xff01;在工作流的开发过程中&#xff0c;锋利的利器就是 精湛的设计与代码优化。本篇文章将探讨如何像一把利刃一样&#xff0c;用最直接的方式切入复…

phpword读取word docx文档文本及图片转html格式

最近在做一个PHP读取word文档功能&#xff0c;搜索一圈后决定选择用phpword第三方组件。 composer安装phpWord composer require phpoffice/phpword如果你的文件是doc格式&#xff0c;直接另存为一个docx就行了&#xff1b;如果你的doc文档较多&#xff0c;可以下一个批量转…

ZXing.Net:一个开源条码生成和识别器,支持二维码、条形码等

推荐一个跨平台的非常流行的条码库&#xff0c;方便我们在.Net项目集成条码扫描和生成功能。 01 项目简介 ZXing.Net是ZXing的.Net版本的开源库。支持跨多个平台工作&#xff0c;包括 Windows、Linux 和 macOS&#xff0c;以及在 .NET Core 和 .NET Framework 上运行。 解码…

Qwen 个人笔记

Qwen 个人笔记 Qwen的整体架构与Llama2类似&#xff0c;如下图所示: 1 Qwen2Config 1.1 Model 1.1.1 初始化 设置了模型的两个属性:padding_idx&#xff08;用于指定填充标记的索引&#xff09;&#xff0c;vocab_size&#xff08;词汇表的大小&#xff09;初始化了模型的…

基于MATLAB的安全帽检测系统

课题名称 课题介绍 众所周知&#xff0c;在一些施工工地&#xff0c;必须明确佩戴安全帽。可以对生命安全起到保障作用。该课题为常见的安全帽的识别&#xff0c;主要分为红色&#xff0c;蓝色&#xff0c;黄色三类安全帽。而安全帽的主要是红色&#xff0c;蓝色&…

Dell PowerEdge 网络恢复笔记

我有一台Dell的PowerEdge服务器&#xff0c;之前安装了Ubuntu 20 桌面版。突然有一天不能开机了。 故障排查 Disk Error 首先是看一下机器的正面&#xff0c;有一个非常小的液晶显示器&#xff0c;只能显示一排字。 上面显示Disk Error&#xff0c;然后看挂载的硬盘仓&#…

【Mysql-索引总结】

文章目录 什么是索引索引类型索引的数据结构Hash索引有序数组二叉搜索树平衡二叉树B树B索引 索引使用规则索引失效的情况如何选择正确的列进行索引&#xff1f; 什么是索引 索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构&#xff0c;它是某个表中…

【第34章】Spring Cloud之SkyWalking分布式日志

文章目录 前言一、准备1. 引入依赖 二、日志配置1. 打印追踪ID2. gRPC 导出 三、完整日志配置四、日志展示1. 前端2. 后端 总结 前言 前面已经完成了请求的链路追踪&#xff0c;这里我们通过SkyWalking来处理分布式日志&#xff1b; 场景描述&#xff1a;我们有三个服务消费者…

《JKTECH柔性振动盘:原理与多行业应用》东莞市江坤自动化科技有限公司

一、柔性振动盘的原理 柔性振动盘是一种新型的自动化上料设备&#xff0c;它采用先进的音圈电机技术和柔性振动技术&#xff0c;实现了对各种不规则形状、微小尺寸、易损伤零部件的高效上料和分拣。 其工作原理主要包括以下几个方面&#xff1a; 1. 音圈电机驱动 柔性振动盘内部…

电力施工作业安全行为检测图像数据集

电力施工作业安全行为检测图像数据集&#xff0c;图片总共 2300左右&#xff0c;标注为voc(xml)格式&#xff0c;包含高空抛物&#xff0c;未佩戴安全带&#xff0c;高处作业无人监护等。 电力施工作业安全行为检测图像数据集 数据集描述 这是一个专门用于电力施工作业安全行…

大数据新视界 --大数据大厂之AI 与大数据的融合:开创智能未来的新篇章

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

分发饼干00

题目链接 分发饼干 题目描述 注意点 1 < g[i], s[j] < 2^31 - 1目标是满足尽可能多的孩子&#xff0c;并输出这个最大数值 解答思路 可以先将饼干和孩子的胃口都按升序进行排序&#xff0c;随后根据双指针 贪心&#xff0c;将当前满足孩子胃口的最小饼干分配给该孩…

MySQL篇(存储引擎)(持续更新迭代)

目录 一、简介 二、使用存储引擎 1. 建表时指定存储引擎 2. 查询当前数据库支持的存储引擎 三、三种常见存储引擎 1. InnoDB存储引擎 1.1. 简介 1.2. 特点 1.3. 文件格式 1.4. 逻辑存储结构 表空间 段 区 页 行 2. MyISAM存储引擎 2.1. 简介 2.2. 特点 2.3. …

在Windows环境下设置SSH克隆GitHub仓库

在Windows环境下设置SSH克隆GitHub仓库的步骤如下&#xff1a; 1. 生成SSH密钥 打开 Git Bash&#xff08;如果你已经安装了Git&#xff09;。输入以下命令生成SSH密钥&#xff1a;ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 按 Enter 键接受默认文件名…