最优化技术——单纯形法
最优化技术——单纯形法
说明
这个文章的大部分内容(几乎全部)都来自于我最优化课程的课程笔记。主要来源是重庆大学文静老师的PPT,个人主要用于整理、归纳,如果有侵权等问题,我会在第一时间将博客撤销。
单纯形法的流程介绍
直观的去看这个流程,有一点点像前面的一些函数的优化方法。但是在枚举的过程中,有一些问题值得关注:
- 枚举的起点?
- 如何判断当前已经是最优解了?
- 如何在当前解的前提下找到一个更好的解?
单纯形法的迭代原理
通过一个例子来讲解单纯形法的基本原理
我们这样一个线性规划问题:
因为这里主要讨论单纯形法,所以我们不再纠结怎么化成标准型。
选择初始基,确定基本可行解
这里使用的是观察法(我:???),观察系数矩阵中是否含有现成的单位阵,如果有的话就直接用现成的单位阵作为基。
在这里我们选定的基变量为:(x3,x4,x5)(x_3,x_4,x_5)(x3,x4,x5)
选定的基矩阵为单位矩阵I3I_3I3
找到的基本可行解:
[xBxN]=[B−1b0]\left[ \begin{matrix}x_B\\x_N \end{matrix} \right] = \left[ \begin{matrix}B^{-1}b\\0 \end{matrix} \right][xBxN]=[B−1b0]
即:x1,x2,x3,x4,x5=0,0,8,16,12x_1,x_2,x_3,x_4,x_5 = 0,0,8,16,12x1,x2,x3,x4,x5=0,0,8,16,12
Q:为什么要找单位阵?
A:我们都学过《线性代数》,线代告诉我们,一个矩阵能够被化作单位矩阵和这个矩阵可逆是等价的,有根据上一节讲的,在求解过程中需要对基去逆,所以综上所述,需要找一个单位阵/可以化成单位阵的。
判断当前解是否为最优解
将基变量使用非基变量表示,使用非基变量表示目标函数。
x3=8−x1−2x2x_3 = 8 - x_1 - 2x_2x3=8−x1−2x2
x4=16−4x1x_4 = 16 - 4x_1x4=16−4x1
x5=12−4x2x_5 = 12 - 4x_2x5=12−4x2
Z=2x1+3x2Z = 2x_1 +3x_2Z=2x1+3x2
我们的非基变量向上增加,目标函数ZZZ的值也是增加的,所以说现在的基本可行解的取值不是最优的。那么什么时候它的取值才是最优的呢?
当非基变量的值增加,而目标函数的值不增加的时候,就是最优的。
也就是说当目标函数中的系数也就是检验数都小于等于0时,就是最优解,这里包括两种情况:
- 检验数为0 : 是最优解,但并不是唯一的最优解,表示存在无数个最优解
- 检验数为1:是唯一的最优解
如何转到下一个基本可行解
回到我们的目标函数:
Z=2x1+3x2Z = 2x_1 + 3 x_2Z=2x1+3x2
从这个目标函数中我们可以看出,x2x_2x2对目标函数的贡献比x1x_1x1大。要让x2x_2x2的取值从0变成正值,所以x2x_2x2从非基变量转为基变量,称作进基变量。
这里就有一个问题,有一个变量从非基变量变成基变量,就意味着会有一个基变量变成非基变量,这个变成非基变量的变量叫做离基变量。
离基变量的选择:
这里我们需要回到用非基变量表示基变量的那一步:
x3=8−x1−2x2x_3 = 8 - x_1 - 2x_2x3=8−x1−2x2
x4=16−4x1x_4 = 16 - 4x_1x4=16−4x1
x5=12−4x2x_5 = 12 - 4x_2x5=12−4x2
那么在挑选离基变量的时候,我们将收敛的最快的(当进基变量增大时,最先到0的)拿出去。
按照这个方法,我们新的基变量是(x2,x3,x4)(x_2,x_3,x_4)(x2,x3,x4),非基变量是:(x1,x5)(x_1,x_5)(x1,x5)
然后再回到第一步开始检验,直到得到最优解为止。
单纯形表
单纯形表的构建
这里我们不再关注怎么加松弛变量之类的问题了
单纯形表中:
XBX_BXB:表示当前的基变量,初始挑选单位阵为初始基,构成向量B
CBC_BCB:代表当前基变量在目标函数中的系数向量
bjb_jbj:代表约束条件的右端的b值
cjc_jcj:代表目标函数的系数,在这里c=(3,4,0,0)c= (3,4,0,0)c=(3,4,0,0)
x1,x2...x_1,x_2...x1,x2...下面的数字:约束条件的系数矩阵
σj\sigma_jσj:检验数,σj=cj−Σciaij\sigma_j = c_j-\Sigma c_ia_{ij}σj=cj−Σciaij ,这里的aija_{ij}aij是系数矩阵
以σ1\sigma_1σ1为例,σ1=3−(2∗0+1∗0)=3\sigma_1 = 3-( 2*0+1*0)=3σ1=3−(2∗0+1∗0)=3
找到入基变量
方法:找检验数最大的,再上一张表里面,x2x_2x2的检验数最大,所以将作为入基变量
找到出基变量
方法:找θ\thetaθ,我们顺着上面来,我们现在确定了x2x_2x2就是所谓的入基变量,下面,开始计算:
θ=bjx2\theta = \frac{b_j}{x_2} θ=x2bj
在上面的表中,θ3=40,θ4=10\theta_3= 40,\theta_4 = 10 θ3=40,θ4=10
值得注意的是:当x2x_2x2的值为负值的时候,就不需要求θ\thetaθ了。
到此为止,谁的θ\thetaθ值越小就选谁当出基变量
总体操作
找到入基变量,出基变量之后,列一张新的单纯形表,并且以此往复即可。当所有非基变量都为负数或零时停止,这时最优解就是:基变量取得到的值,非基变量取0.
最优化技术——单纯形法相关推荐
- 最优化算法单纯形法的matlab实现(单纯形法看这一篇就够了)
文章目录 前言 一.单纯形法表格 1.1可立即读出最优解和最优值的表格具备的特点 二.单纯形法的步骤(流程图) 三.单纯形法的matlab实现 3.1单纯形法matlab代码 3.2测试例题 3.3结 ...
- 最优化理论—单纯形法的C++实现(大M法)
#include<iostream> #include<vector> #include<string> using namespace std; //大M法 输入 ...
- 【最优化/运筹学】单纯形法—手写例题(求min)—10分钟速成
目录 单纯形法 解题步骤(min法) 手写例题 说明 单纯形法 解题步骤(min法) 最优化理论单纯形法是一种求解线性规划问题的方法,其基本思想是通过不断地移动可行解来逐步接近最优解.其解题步骤如下: ...
- 最优化算法对偶单纯形法的matlab实现(对偶单纯形法看这一篇就够了)
文章目录 前言 一.单纯形法表格 1.1可立即读出最优解和最优值的表格具备的特点 二.对偶单纯形法的步骤(流程图) 三.对偶单纯形法的matlab实现 3.1对偶单纯形法matlab代码 3.2测试例 ...
- 人工智能中的运筹学与最优化就该这样学之著名教材
本文为读者朋友们推荐一些运筹学与最优化方面的常用教材,方便读者选择相应的教材进行学习,提高学习效率.由于教材非常多,本文只列出了部分,读者也可以自己进行搜索,选择适合自己的教材. 首先来看运筹学方面的 ...
- cae计算机仿真分析技术,cae分析.doc
文档介绍: CAE简介作为国内工业界推广应用CAE的基础,有必要简要介绍CAE的概念.应用.分析过程.作用及发展趋势.一方面,对CAE有初步的又是较系统的认知,另一方面,在了解国际范围内CAE应用的历 ...
- 三维重建、视觉定位、传感器位置推算,滴滴 AR 实景导航技术详解
导读:机场.商场.火车站等大型室内场所内GPS信号不稳定.室内面积大.路线复杂.用户判断方向难等问题,给在大型场所内发单的乘客找上车点带来了很大的挑战,用户急需一种操作简单.交互友好的引导功能.本文讲 ...
- 粒子群算法实战分享-附原版动画PPT(技术分享也可以文艺范?)
版权声明:本文为博主原创文章,未经博主允许不得转载. 本文是针对博主使用粒子群优化算法解决水面无人艇静态.动态障碍物规避,及场地布局三类问题,做了更深入的总结分析. 与目前火热的机器学习不同,智能优化 ...
- 技术+服务:警翼智能欲筑高“护城河”
中新网1月15日电 执法记录仪行业细分领域拟IPO上市的深圳警翼智能科技股份有限公司(以下简称"警翼智能"),已进入预披露更新阶段,据招股书显示,公司业绩增长较快,2015年营业收 ...
最新文章
- Docker 使用Dockerfile构建tomcat镜像
- lua元表和元方法 《lua程序设计》 13章 读书笔记
- 记录因xen而导致lvs,realserver转发activeconn为0
- 线性表【项目 - 求集合并集C语言】(带注释)
- 【微信小程序】——实战开发之和风(含demo)
- Linux下Openssl的安装
- 前端项目-尚品会-来自b站尚硅谷视频
- 史上最全安装Maven教程
- 电路分析 极简复习指导、公式推导、常用结论归纳 第十章 含有耦合电感的电路
- 华三服务器bios修改兼容模式,bios怎么设置兼容模式
- 再见2021,2022加油
- zabbix探究告警触发器Triggers
- 英特尔下代安腾芯片全面揭秘
- C语言指针难吗?纸老虎而已,纯干货讲解
- 从外部的js文件中获取ASPX页面的控件ClientID(get control reference from external javascript)...
- TCP实现P2P通信
- 教师试讲学生名字_我们如何帮助老师学习学生的名字
- 【毕业设计】 基于Stm32的家庭智能监控系统 - 单片机 图像识别 人体检测 AI
- cors数据类型_南方测绘CORS介绍
- 解决“磁盘碎片整理程序检测到chkdsk计划在卷”问题
热门文章
- 资深猎头眼中的优质简历是如何炼成的?
- [移动硬盘]笔记本移动硬盘盒选择
- 旭荣管理软件怎么修改小票内容_【好工具】强烈安利的文献管理软件 Mendeley
- Unity3D 动态加载本地/网络GLB模型
- 揭开“QUIC”的神秘面纱
- java day1 Markdown学习,Windows常用快捷键及常见的dos命令
- 网站建设学习(九)——JavaScript基础语法(上)
- 兰迪·波许教授的最后一课
- java熔断器_详解spring cloud分布式关于熔断器
- 英语基础-主语、宾语、表语、同位语