LP两阶段法(一阶段)
\begin{equation}\begin{aligned}
\min \quad & z=\mathbf{c}^{T} \mathbf{x} \\
\text { s.t. } & \mathbf{A} \mathbf{x}=\mathbf{b} \\
& \ell \leq \mathbf{x} \leq \mathbf{u}
\end{aligned}\end{equation}
The types of the components
of x are defined as
\begin{equation}
\begin{aligned}
&\mathcal{U}=\left\{k: k \in \mathcal{R}, x_{k}=u_{k}\right\}\\
&\mathcal{M}=\left\{i: x_{k_{i}}<0, i \in \mathcal{I}_{0} \cup \mathcal{I}_{1} \cup \mathcal{I}_{2}\right\}\\
&\mathcal{P}=\left\{i: x_{k_{i}}>u_{k_{i}}, i \in \mathcal{I}_{0} \cup \mathcal{I}_{1}\right\}\\
&\mathcal{F}=\mathcal{I} \backslash(\mathcal{M} \cup \mathcal{P})
\end{aligned}
\end{equation}
Using notation $\beta = x_{\mathcal{B}}$ we can simplify the reference to basic variables. As a measure of infeasibility we use the negative of the sum of violations:
$$w=\sum_{i \in \mathcal{M}} \beta_{i}-\sum_{i \in \mathcal{P}}\left(\beta_{i}-v_{i}\right)$$
Obviously, $w \geq 0$. If $w = 0$ then both $\mathcal{M}$ and $\mathcal{P}$ are empty and the
solution is feasible.
So it is translated into
\begin{equation}\begin{aligned}
\max \quad & w \\
\text { s.t. } & \mathbf{A x}=\mathbf{b} \\
& \ell \leq \mathbf{x} \leq \mathbf{u}
\end{aligned}\end{equation}
We can investigate how feasibility of the basis is affected if a nonbasic
variable is displaced by t in the feasible direction. First, assume the
displacement is nonnegative, $t \geq O$. The i-th basic variable as a function of t is
$$\beta_{i}(t)=\beta_{i}-t \alpha_{q}^{i}$$
$\boldsymbol{\alpha}_{q}=\mathbf{B}^{-1} \mathbf{a}_{q}, \boldsymbol{\beta}=\mathbf{B}^{-1} \mathbf{b}_{\mathcal{U}}, \boldsymbol{\beta}(t)=\mathbf{x}_{\mathcal{B}}(t)$.
Given $\mathcal{M} \cup \mathcal{P} \neq \emptyset$ and $j \in \mathcal{R}$ with . w can be
improved by increasing the value of $x_{j}$ only if
$$d_{j}=\sum_{i \in \mathcal{M}} \alpha_{j}^{i}-\sum_{i \in \mathcal{P}} \alpha_{j}^{i}<0$$
If the infeasibility sets M and P remain unchanged only for t = 0
then the basis is degenerate.
A feasible displacement of a variable can also be negative. In this
case, w can be improved by decreasing Xj if $d_j >0$.
Define vector h with components
$$h_{i}=\left\{\begin{array}{ll}
1, & \text { if } i \in \mathcal{M} \\
-1, & \text { if } i \in \mathcal{P} \\
0, & \text { otherwise }
\end{array}\right.$$
It is easy to see that
$$d_{j}=\mathbf{h}^{T} \boldsymbol{\alpha}_{j}=\mathbf{h}^{T} \mathbf{B}^{-1} \mathbf{a}_{j}$$
just like the
phase-2 simplex multiplier $\pi$, by
$$\boldsymbol{\phi}^{T}=\mathbf{h}^{T} \mathbf{B}^{-1}$$
Define
$$\begin{array}{l}
K^{-}=\left\{\begin{array}{ll}
0, & \text { if } K \geq 0 \\
K, & \text { if } K<0
\end{array}\right. \\
K^{+}=\left\{\begin{array}{ll}
K, & \text { if } K>0 \\
0, & \text { if } K \leq 0
\end{array}\right.
\end{array}$$
The measure of infeasibility as a function of t can be expressed as
$$\begin{aligned}
w(t) &=\sum_{i \in \mathcal{I}_{\ell}}\left[\beta_{i}(t)\right]^{-}-\sum_{i \in \mathcal{I}_{u}}\left[\beta_{i}(t)-v_{i}\right]^{+} \\
&=\sum_{i \in \mathcal{I}_{\ell}}\left[\beta_{i}-t \alpha_{i}\right]^{-}-\sum_{i \in \mathcal{I}_{u}}\left[\beta_{i}-t \alpha_{i}-v_{i}\right]^{+}
\end{aligned}$$
where $\mathcal{I}_{\ell}=\mathcal{I}_{0} \cup \mathcal{I}_{1} \cup \mathcal{I}_{2}$ (index set of basic variables with 0 lower bound) and $\mathcal{I}_{u}=\mathcal{I}_{0} \cup \mathcal{I}_{1}$
(basic variables with finite upper bound).
Analysis of w(t)
The contribution of the $\beta_{i}(t)$ to $w(t)$ is illustrated
in figures 9.4, 9.5 and 9.6.
When t moves away from 0 in the positive direction the first change in
the feasibility status of one of the basic variables occurs when t reaches
the first break point. It is the smallest of the ratios defined in (9.87) and
(9.88). Since we want to pass this point and want to do further steps we
assume that the break points are sorted into ascending order:
$$0 \leq t_{1} \leq \cdots \leq t_{S}$$
t if $x_q$ is the selected improving variable
coming in from lower bound then the rate of change of $w(t)$ is $-d_q$. Therefore, in the [0, tIl interval w(t) increases by -dqtl.
Denoting
$$r_{1}=-d_{q}=-\left(\sum_{i \in \mathcal{M}} \alpha_{i}-\sum_{i \in \mathcal{P}} \alpha_{i}\right)$$
$$r_{k+1}=r_{k}-\left|\alpha_{j_{k}}\right|, \quad k=1, \ldots, S$$
The maximum of w(t) is defined by index s for which
$$\begin{array}{lll}
r_{s}>0 & \text { and } & r_{s+1} \leq 0
\end{array}$$
$$w\left(t_{k}\right)=w\left(t_{k-1}\right)+\left(t_{k}-t_{k-1}\right) r_{k}, \quad k=1, \ldots, s$$
LP两阶段法(一阶段)的更多相关文章
- 分布式事务 & 两阶段提交 & 三阶段提交
可以参考这篇文章: http://blog.csdn.net/whycold/article/details/47702133 两阶段提交保证了分布式事务的原子性,这些子事务要么都做,要么都不做. 而 ...
- javaScript 变量提升 var let const,以及JS 的解析阶段和执行阶段
我们先来看一道面试题,大家猜想一下,下面这段代码,打印出来的结果是什么 var name = 'World!'; (function () { if (typeof name === 'undefin ...
- PHP程序员的技术成长规划 第一阶段:基础阶段
第一阶段:基础阶段(基础PHP程序员) 重点:把LNMP搞熟练(核心是安装配置基本操作)目标:能够完成基本的LNMP系统安装,简单配置维护:能够用PHP源码做基本的简单系统的PHP开发:能够在PHP中 ...
- 分布式事务解决方案(一) 2阶段提交 & 3阶段提交 & TCC
参考文档:http://blog.jobbole.com/95632/https://yq.aliyun.com/articles/582282?spm=a2c4e.11163080.searchbl ...
- web测试一般分为那几个阶段,哪些阶段是可以用工具实现的,都有些什么工具,哪些阶段必须要人工手动来实现呢?
这是我在知乎上遇到的一个问题: web测试一般分为那几个阶段,哪些阶段是可以用工具实现的,都有些什么工具,哪些阶段必须要人工手动来实现呢? 首先这个提问本身就是有问题的, 没有哪个阶段是用工具实现的, ...
- MT【168】还是两根法
设二次函数$f(x)=ax^2+bx+c(a>0)$,方程$f(x)=x$的两根$x_1,x_2$满足$0<x_1<x_2<\dfrac{1}{a}$,(Ⅰ)当$x\in(0, ...
- PHP程序员的技术成长规划 第三阶段:高级阶段
第三阶段:高级阶段 (高级PHP程序员)重点:除了基本的LNMP程序,还能够在某个方向或领域有深入学习.(纵深维度发展)目标:除了能够完成基本的PHP业务开发,还能够解决大部分深入复杂的技术问题,并且 ...
- rest_famework 增删改查初第三阶段(高级,此阶段是优化第二阶段的代码)的使用
url: re_path('authors/$', views.AuthorView.as_view()), re_path('book/(?P<pk>\d+)/$', views.Boo ...
- rest_famework 增删改查初第四阶段(最高级,此阶段是优化第三阶段的代码)的使用
两个url 共用一个视图 url url(r'^books/$', views.BookViewSet.as_view({"get":"list"," ...
- 分布式事务(一)两阶段提交及JTA
原创文章,同步发自作者个人博客 http://www.jasongj.com/big_data/two_phase_commit/ 分布式事务 分布式事务简介 分布式事务是指会涉及到操作多个数据库(或 ...
随机推荐
- Java基础之标识符和关键字
关键字 标识符 Java所有的组成部分都需要名字.类名.变量名以及方法名都被称为标识符. Java 中标识符是为方法.变量或其他用户定义项所定义的名称.标识符可以有一个或多个字符. 标识符注意点: 在 ...
- Python面向对象编程——__init()__方法
隐式基类object 每个python类都隐式继承object 全文代码实例实现:枚举扑克牌的花色和牌面值 一._init()__方法:对象初始化 显示而非隐式:__init()__应显示展示初始化变 ...
- 阿里开源的几个中间件 dubbo/RocketMQ/canal/druid 代码还是很不错的
阿里开源的几个中间件 dubbo/RocketMQ/canal/druid 代码还是很不错的
- nodejs中的kafkajs,消费顺序,不重复消费
参考:https://kafka.js.org/docs 确保同一个消息发送到同一个partition,一个topic,一个partition,一个consumer,内部单线程消费1.封装kafkaU ...
- CCF 202006-2 稀疏向量
#include <iostream> #include <bits/stdc++.h> #include <string> using namespace std ...
- 关于Easyui和JQuery版本兼容IE8问题记录
1.最后支持IE8及以下版本的是JQuery1.9 2.最后支持IE8及以下的Easyui是1.3.2,其对应的是JQuery1.8 因为低版本的Easyui,缺少某些方便好用的属性方法和样式不好看, ...
- RTSP配置海康相机视频
RTSP:即时串流协定(Real Time Streaming Protocol,RTSP)是用来控制声音或影像的多媒体串流协议,并允许同时多个串流需求控制. 1.获取海康相机ip地址 (1).下载海 ...
- iOS App转让/转移详细步骤(配图)
参考:https://www.jianshu.com/p/57bc6d229be2
- flask create_time update_time is_delete
create_time = db.Column(db.DateTime, server_default=func.now()) update_time = db.Column(db.DateTime, ...
- 设置mode='out-on'导致路由切换过快路由加载报错 Failed to execute 'insertBefore' on 'Node'
原代码: 解决代码: 原因未知