当前位置:网站首页>八、线性规划 顶点、极值点和基本可行解决方案
八、线性规划 顶点、极值点和基本可行解决方案
2022-06-09 09:25:00 【坐望云起】
1、基本可行方案
假设我们正在求解方程形式的一般线性程序:

这里,
是一个
的矩阵,
,
,今天,我们将假设
的行是线性独立的。 (如果不是,那么系统
没有解,或者某些方程是多余的。在第一种情况下,我们只是忘记分析这样的线性程序;在第二种情况下,我们可以从删除冗余行。)
我们已经非正式地说过,基本可行的解决方案是“尽可能多的变量”为0。这不是很精确:在某些情况下(由于退化),可能有异常多的0值,并且我们不希望这与我们的定义混淆。 相反,我们进行如下定义。
选择一些列(或变量)
的
做为基本。 我们希望
是有序的,因为当以不同的顺序选择基本变量时,我们的表看起来会略有不同。 为方便起见,我们让
是非基本变量的 (n - m) 元组:那些不在
中的变量。
我们可以将向量和矩阵分为基本部分和非基本部分。举个例子,如果
,
,
,我们有
,并且
,这也可以用 A 和 c 来完成:我们可以将目标函数写为
,方程组
为。
为了得到一个基本的解决方案,我们要选择
使得
(一个
矩阵)是可逆的。 如果 A 的行是线性独立的,这总是可能的。 并非
的每一个选择都有效:例如,在二维中,如果可行域的两条边是平行线,则它们永远不会相交。
现在设置
,并且
。这满足
。此外,如果我们有
(总是有
,因为
),我们称 x 为基本可行解。
2、角点的其他概念
除了基本可行的解决方案之外,还有其他的“角点”概念。我们说
集合
的一个顶点是一个点
使得某个线性函数
在
处严格最小化:对于任何
,
;
。
集合
的极值点是不位于
的任何其他点之间的点
。形式上,如果
是极值点,只要
对于
;
,
或
。
换句话说,如果
可以写成
对于 y;
和
,或者
(我们可以设置
)或
(我们可以设置
)。
当我们考虑的集合是
,线性规划的可行域,三个概念基本可行解,顶点,极值点都相同。 这就是我们今天要尝试证明的。
(1)从基本可行解到顶点
命题 2.1。 任何基本可行解都是可行域的一个顶点。
证明。 任意选择基本和非基本变量
,设置
会产生基本可行解。 定义

那么
是 x 中非基本变量的总和。由于
,当我们设置
时,
被最小化。这正是对应于
的基本可行解。
(2)从顶点到极值点
命题 2.2。 集合
的任何顶点也是
的极值点。(特别是,任何基本可行解也是可行域的极值点。)
证明。 令
是
的一个顶点,并且
是向量使得对于任何
和
,
。
假设
位于线段
与
;
;
。 这就是不成为极端的点。
使用不等式
和
,是矛盾的,因此 x 必须是一个极值点。。
(3)从极端点到基本可行的解决方案
最后一步,从极端点到基本可行的解决方案,是比较棘手的。
命题 2.3。 可行域的任何极值点都是基本可行解。
证明。 令
为可行域的任意极值点。 定义
和
,类比 B 和 N 以获得基本的可行解。
我们不能真正问
是否可逆,因为我们甚至没有理由认为它是正方形的。 但是我们可以做的是问我们是否可以找到一个非零的
使得:

如果没有这样的 u,那么我们将认为 x 是一个基本可行的解决方案。 如果有这样一个 u,那么我们将论证 x 实际上不是一个极值点,并产生矛盾。
首先,假设不存在这样的 u:只要 ,我们就有
。在这里,我们需要一些线性代数。W索引的列是
线性独立列,所以我们知道
(因为列是
中的向量)。因为 A 具有完整的行秩,我们知道我们可以将 W 扩展到某个 B(其中
),使得由 B 索引的列仍然是线性独立的,因此 B 是可逆的。
现在,让 N 是 B 的补码。因为我们从 W 开始并可能将其变大来找到 B,所以我们知道 N 是通过从 Z 开始并可能使其变小来找到的。 因为 (这就是我们选择 Z 的方式),所以我们也知道
。
现在我们快完成了。
。 由于 ,我们有
,所以 。 这正是我们想要的基本解决方案。
其次,假设存在这样一个 u。 然后我们有
这意味着
形式的点仍然满足方程组:即
。
并非所有
形式的点都是可行的:对于某些 t,我们可以找到一个坐标 i,使得。但是,我们知道这样的 i 必须在 W,而不是 Z,因为对于任何
,我们有 。所以
。这意味着当
足够小时,
也是如此。
选择一个足够小的
使得
和
都是可行的:对于每个 i, 和
。 这很像旋转:对于每个 i 要求
满足
就足够了。
但是现在,x 位于从
到
的线段上。 事实上,它是那条线段的中点。 因为
且
,所以它不同于两个端点。 所以 x 在这种情况下不是一个极值点,这与假设相反。
边栏推荐
- [code comment] Doxygen
- [brain opening] how can knowledge-based enterprises start their own businesses recruit talents?
- Solve the apscheduler error: run time of job... Next run at:...) "was missed by
- 【线性代数】理解特征值和特征向量
- 长安链ChainMaker多机环境
- LeetCode_ Monotone stack_ Medium_ 739. daily temperature
- SSM详解
- KusionStack 开源有感|历时两年,打破“隔行如隔山”困境
- redis info命令 memory内存信息说明
- LeetCode_模拟_中等_621. 任务调度器
猜你喜欢

How do you view the multi runtime architecture of dapr and layotto?

KusionStack 开源有感|历时两年,打破“隔行如隔山”困境

Basic pointer ~ guide you to the introduction pointer

Neo4j realizes social recommendation (4)

【图机器学习】图神经网络入门(一)谱图理论

Understand the graph database neo4j (III)
![[technology, business and management] drama learning and Entrepreneurship: Silicon Valley, episode 1-2, season 6](/img/21/9569fb9a013da1476645bbfb0cf93c.png)
[technology, business and management] drama learning and Entrepreneurship: Silicon Valley, episode 1-2, season 6

Countdown 3 days 𞓜 sofachannel 28 sofaark class isolation framework design

【新手上路常见问答】如何用TensorFlow玩转深度学习?

TS 泛型类和泛型接口的好处
随机推荐
【图机器学习】启发式链路预测方法
Understand the graph database neo4j (III)
Kusionstack has a sense of open source | it took two years to break the dilemma of "separating lines like mountains"
【计算机网络-19】计算机网络面试题
[5机器学习]全网最易懂的决策树(附源码)
MySQL basic subquery exercise
[code comment] Doxygen
three.js学习笔记(十五)——着色器图案
Sword finger offer09-- implement queue with two stacks
[loss function] focal loss loss function solves the problem of sample imbalance
XML to map (recursively call to read all node contents of XML) readxml read XML
NIO BIO AIO
Judge whether it is JSON or file stream
openstack详解(十五)——openstack Nova节点基本原理
[figure machine learning] heuristic link prediction method
openstack详解(十六)——openstack Nova安装与数据库配置
【推荐系统】基于用户的协同过滤
Sofa weekly | kusion open source, QA this week, contributor this week
Dotnet core can also coordinate distributed transactions!
LeetCode_ Monotone stack_ Medium_ 739. daily temperature