Introduction to Linear Optimization 2.1 多面体和凸集
0 序言
最近打算在CSDN上将自己学习本书的过程记录下来,整个系列对于我来说更像是读书笔记,同时也放在网上供大家阅读。由于本人非数学科班出身,仅仅是对运筹优化方面有兴趣而学习,因此对于某些定义的理解、把握以至于推导不甚精通,其中若有错误,还希望大家不吝指教。
本书第一章Introduction中内容我已略去,其主要原因是该章节内容比较基础且多为介绍性的内容,基本上没有理解性的内容,因此主要从第二章线性规划图解法开始写,书中某些难度较高以至于不适合初学者学习的章节我也都会略过。
全书共12章,2至5章为线性规划主要内容,分别为:
- 线性规划图解法
- 单纯形法
- 对偶理论
- 灵敏度分析
在国内运筹学教材上普遍存在的内容,如:运输问题、线性目标规划、图论、排队论、存储论等等,非本系列的重点,本系列主要重点是围绕着 Introduction to Linear Optimization 展开讨论的,因此如排队论,存储论等内容,本系列不会出现。而对于图论、整数规划等内容,也非本系列的重点,我本人也不会在此类章节上过多的费口舌。
国内部分高校本科所开设的运筹学这门课程,通常为一个学期结课,因此对于很多本科学习过运筹学的同学(非数学专业),通常都存在着困惑。学习完之后感觉这门学科好像很厉害,但是却不明白其中的道理为何。本人也是如此,因此本系列最好的受众就是对于运筹学有一些基础的了解,但又不明其理、或是初学运筹学的同志们当作笔记阅读。
在这里我再次声明:本人非数学科班出身,仅仅是浩如烟海般的群众的一部分,没有接受过什么教育,本人对于运筹学的认知是非常浅薄的,仅仅因为兴趣而为之。因此,若你是业界学术大佬,对于文章中的错误还望不吝指教,我再此再三感激;若你是与我一样的初学者,我希望我们更是以一种同学的身份共同进步。
(声明:本书绝大多数专有名词我都会用中英文结合的方式来表示出,如:极点(extreme points),但是当遇到过于简单的专有名词的时候,如:线性规划图解法(The geometry of linear programming),我仅仅会表达中文意思,当遇到我自己认为没有合适的中文名词对应的专有名词时,我会采用原书的英文表达方式,并附加我对其的一些理解)
1. 超平面,半空间和多面体
多面体的表示
我们先来看原书中的几个定义:
Definition 2.1 A polyhedron is a set that can be described in the form {x ∈ Rn | Ax ≥b}, where A is an m*n matrix and b is a vector in Rm.
注:Rn与Rm分别代表n维和m维的欧式空间
从代数的角度理解多面体(polyhedron),即多面体是一个n维列向量 x 的集合,该集合中的所有元素 x 满足线性方程组 Ax ≥b
若从几何的角度理解多面体,不妨先从低维度的来看
我们以二维为例
假设在xOy平面内,存在如下集合
x - y ≥ -3 2*x + y ≤ 6 x,y ≥ 0
即该集合所表示的图形如下图绿色区域所示
当 x 的维数上升至3维时,一个多面体的形状就变为了3维欧式空间中的“体”,当维数超过3维达到更高的n维时,便没有直观上的图来描述了,因为我们所生活的世界就是3维欧式空间。
多面体的分类
不同的多面体根据其集合所包含的方程组不同,主要可以分为有界的(bounded)与无界的(unbounded),在上一个例子中展示出的多面体即为有界的,显而易见,我们很容易给出一个无界的多面体的例子,如:
x ≥ 0 y ≥ 0
即为xOy坐标系的第一象限(图略)
超平面与半空间的表示
Definition 2.2 Let a be a nonzero vector in Rn and let b be a saclar.
(a) The set {x ∈ Rn | a’x = b} is called a hyperplane.
(b) The set {x ∈ Rn | a’x ≥ b} is called a halfspace.
注:a’ 代表列向量 a 的转置
超平面在2维情况下为一条直线,在3维情况下为一个平面,以此类推。
而半空间即为空间的一半。我们知道,在任意维数(n ≥ 1)情况下,其所构成的空间皆是无限的,如:一根直线,一个平面,一个体…
因此我们在平面上任意确定的一点,在平面上任意确定的一条线,在体内任意确定的一个平面,都可以将对应的空间划分为两半,因此我们称其为半空间。而两个半空间之间的界限,我们称其为超平面。
2.凸集
Definition 2.3 A set S ⊂ Rn is convex if for any x,y ∈ S, and any λ∈[0,1], we have λx + (1 - λ)y ∈ S.
凸集(convex sets)的定义是非常容易从几何的角度去理解的,如上例所示的在二维欧式空间内的多面体:
从直观上理解即:该多面体所构成的集合没有“凹”的地方,即:集合内任意两点(元素)的连线上的所有点(元素)仍在集合内。
一些定理
通过以上的一些定义,我们可以得到下述定理:
Theorem 2.1
(1) The intersection of convex sets is convex.
(2) Every polyhedron is convex set.
(3) A convex combination of a finite number of elements of a convex set *
证明略
小结
本节主要介绍了有关于多面体(polyhedron)与凸集(convex set)及其相关的知识。这一部分的内容是 LP 的基础理论部分,或许在初学时不明白为何要出现这么多的“奇怪的”定理及定义。这说明你对于LP的理解仍不够深入。简单来说,美国前运筹学会主席S.Bonder认为,运筹学应在三个领域发展:
- 运筹数学
- 运筹学应用
- 运筹科学
而运筹数学时运筹学理论的支柱部分,有着严密的理论证明,固然给运筹学的高楼打下了坚实的地基,这在某一方面来说是好事。但是这一点也使得很多专家过于深入于运筹数学深处,而忘记运筹学的初衷——解决实际问题,忽略了多学科的横向交叉联系和解决实际问题的客观需求。
而本节及后续几节所叙述的内容,主要属于运筹数学方向的内容,目的是为了保证运筹学的数学逻辑严密性,初学者对于这些定理不解其意也无妨大局。当学习到后面的内容时,再回过头来看自然会恍然大悟。
我认为这些晦涩的基本理论的学习对于初学者不甚友好,因此我建议对于运筹理论认识尚浅的同学一定要多进行数形结合,不单单是从代数的角度理解,更是从一种几何的角度去理解;而且初学时,切勿钻牛角尖;这样对于定理的学习大有裨益。
好比本节中所学的多面体与凸集,通过数形结合,可以很直观的理解其所代表的含义。
参考文献
[1] Dimitris Bertsimas,John N. Tsitsiklis . Introduction to Linear Optimization[M]. 1997: 42-46
[2] 运筹学教材编写组. 运筹学[M]. 清华大学出版社, 2012年第四版: 3-12
版权归原作者所有,未经原作者允许不得将本文内容用于任何商业或盈利目的,否则将视为侵权,转载或者引用本文内容请注明来源及原作者,对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。
Introduction to Linear Optimization 2.1 多面体和凸集相关推荐
- Introduction to Linear Optimization 2.3标准形式的多面体
1.标准型的表示 通常将多面体 P = {x ∈ Rn | Ax = b, x ≥ 0} 称为多面体的标准型,即多面体中所有约束都为等式.其中 A 为 m×n 的矩阵(通常认为m ≤ n). 现在不妨 ...
- Introduction to Linear Optimization 2.2 极点,顶角与基可行解
1.极点 极点的定义及理解 Definition 2.6 Let P be a polyhedron. A vector x ∈ P is an extreme point of P if we ca ...
- 机器学习基础-吴恩达-coursera-(第一周学习笔记)----Introduction and Linear Regression
课程网址:https://www.coursera.org/learn/machine-learning Week 1 -- Introduction and Linear Regression 目录 ...
- INTRODUCTION TO NONELINEAR OPTIMIZATION Excise 5.2 Freudenstein and Roth Test Function
Amir Beck's INTRODUCTION TO NONELINEAR OPTIMIZATION Theory, Algorithms, and Applications with MATLAB ...
- OR-Tools:1-线性优化,整数优化和约束优化(Linear optimization,Mixed-integer optimization,Constraint optimization)
OR-Tools 解决的问题类型: Linear optimization Constraint optimization Mixed-integer optimization Bin packing ...
- Gilbert Strang 《Introduction to Linear Algebra》 chap1 Introduction to Vectors 笔记
Gilbert Strang Introduction to Linear Algebra chap1 Introduction to Vectors 笔记 会持续更新 Introduction to ...
- Competing in the Dark: An Efficient Algorithm for Bandit Linear Optimization
Competing in the Dark: An Efficient Algorithm for Bandit Linear Optimization Feb. 23, 2021 Aim‾\unde ...
- 【李宏毅2020 ML/DL】补充:Structured Learning: Introduction Structured Linear Model
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本次笔记补充视频 BV1JE411g7XF 的缺失部分.在另一个UP主上传的2017课程BV13x411v7U ...
- Google OR-Tools(二) 线性优化Linear Optimization
本文参考Google OR-Tools官网文档介绍OR-Tools的使用方法. 1 线性规划问题 线性规划是优化问题里最简单的一种形式,需要极大化或极小化的目标函数是线性的,而约束条件由一组线性等式或 ...
- 中文翻译Introduction to Linear Algebra, 5th Edition 5.2
(pdf) 仅为交流学习!才疏学浅,不当的地方还望指正包涵. pdf点击此处下载 ...
最新文章
- ios NSLayoutConstraint
- python和R对dataframe的常用操作的差异:head、tail、shape、dim、nrow、ncol、descirbe、summary、str
- java日志统计_Java实现蓝桥杯日志统计
- 活久见的重构 - iOS 10 UserNotifications 框架解析
- LeetCode_每日一题今日份_329.矩阵中的最长递增路径(没懂)
- Angularjs基础(三)
- [C++]vector创建二维数组
- 使用jackson对Java对象与JSON字符串相互转换的一些总结
- 用oracle的java存储过程实现BLOB字段的字符串读取
- Android开发学习之快速实现圆角ListView
- iOS底层探索之多线程(十一)—GCD源码分析(调度组)
- CAN LIN CANOE DB9 接口定义
- 人性的弱点(经典语录)
- wps怎么插入目录,快速插入目录的操作步骤
- python基于神经机器翻译技术的翻译网站实现
- Python:实现collatz sequence考拉兹序列算法(附完整源码)
- oracle 分区表,分区索引
- 秋草独寻人去后——986山野穿越点滴(七)
- ubuntu如何安装Mac OS X主题
- 云计算技术体系结构由这四点组成
热门文章
- 如何使windows系统环境变量的改变即时生效
- 【Linux 内核】Linux 内核源码根目录下的文件 ( .clang-format | COPYING | CREDITS | Kbuild | Kconfig | MAINTAINERS )
- 一文搞懂 deconvolution、transposed convolution、sub-pixel or fractional convolution
- tkinter做界面的一点心得(丑而简单)
- 阿里云ECS云服务器实例重置-更换操作系统
- Neo4j 第二篇:图形数据库
- Python实用案例,Python脚本实现快速卡通化人物头像,让我想起了QQ秀时光!
- Going Deeper with Convolutions——GoogLeNet论文翻译——中英文对照
- 云原生|kubernetes|etcd集群详细介绍+安装部署+调优
- 如何给宝宝取一个高雅有内涵的名字