大规模线性规划问题的求解极具挑战性,在效率、存储和数值稳定性等方面对算法都有很高的要求。但是这类问题常常非常稀疏且有特殊结构,能够分解为若干个较小规模问题求解。

  线性规划问题的目标函数和非负约束都可分离变量,即分成相互独立的若干组。如果等式约束也可分离变量,则大规模问题就可分解为较小问题求解。

单纯形法

  注意:线性规划问题如果有最优解,必有一个顶点最优解。于是在可行域的顶点中寻找最优解就很自然了。可行域一般有无限多个点,但却只有有限多个顶点(从n个不同元素中取出m个元素的组合数(用符号 C(n,m) 表示))。在顶点中寻找最优解就把寻找的范围从可行域缩小到一个有限子集。

  单纯形法的基本思想:从一个顶点沿一条边转移到一个相邻顶点,如此重复,直到抵达最优顶点。

单纯形表

表1-表2

  其中不仅提供约束系统一般解的显式表示及相应的基本解,还给出了目标函数的一个简化形式。具体地说,其右端列给出基本解:

x1=7/11,x2=14/11,x3=9/11,x4=x5=0

  由于它满足非负性条件,故为基本可行解,表格右下角数值的相反数35/11为其对应目标值。

表3

显然,单纯形表完全由基确定。

  如果目标函数在该解处达到可行域上的最小值,则称之为基本最优解,相应的表为最优(单纯形)表。基本可行解和基本最优解分别为可行域的顶点和最优顶点。假若目标值在可行域上无下界,则称线性规划问题无(下)界;此时也无最优解。

表格单纯形法

高斯-若尔当消去法

  该方法每步由两个部分构成:在系数矩阵部分确定非0主元和对整个曾广矩阵进行相应的消去运算。主元所在的列和行分别称为主元列主元行,其余的为非主元列非主元行(不包含右端列)。每步确定主元后用初等变换将主元列化为主元位置为1的单位向量。

  由全主元高斯-若尔当消去法得到的最终表称为典式。显然约束系统总存在典式。

定理:

  系统有解的充分必要条件是r=m或r<m而右端列的非主元行分量全为0。若有解,则有无穷多解。→当r<m而右端列的非主元元素全为0时,可以踢除非主元行所代表的恒等式。在约束系统无解的情形,显然原线性规划问题也无可行解,自然也无最优解。

系统等价

  一个系统的解的全体称为它的解集。如果几个系统有相同的解集,则视其等价

命题

  • 用任一非0常数乘以任一方程所得到的系统与原系统等价
  • 用任一常数乘以任一方程加到另一方程上去所得到的系统与原系统等价

  上面的运算称为系统的初等(行)变换,是系统最基本的等价变换。高斯-若尔当消去法通过一系列初等变换消去系统的某些项,将其化为易于求解的形式。

Dantzig-Wolfe分解算法

  D-W分解法把约束条件分为两个部分,将可行域表示定理用于其中一部分所对应问题的可行域,分别构造主问题子问题。各次迭代的子问题仅目标函数不同,依其求解的结果判定已达成最优或者生成一个进基列,进而完成主问题的一次单纯形迭代。原问题于是化成两个较小问题的求解。如果原问题部分约束具可分离结构,相应的子问题还可进一步分解为更小的问题。

参考文献:

潘平奇. 线性规划计算[M]. 科学出版社, 2012.

大规模问题的分解法-D-W分解法的更多相关文章

  1. 计蒜客 39280.Travel-二分+最短路dijkstra-二分过程中保存结果,因为二分完最后的不一定是结果 (The 2019 ACM-ICPC China Shannxi Provincial Programming Contest M.) 2019ICPC西安邀请赛现场赛重现赛

    Travel There are nn planets in the MOT galaxy, and each planet has a unique number from 1 \sim n1∼n. ...

  2. 【转】mysql分库分表,数据库分库分表思路

    原文:https://www.cnblogs.com/butterfly100/p/9034281.html 同类参考:[转]数据库的分库分表基本思想 数据库分库分表思路   一. 数据切分 关系型数 ...

  3. [心得] SQL Server Partition(表分區) 資料分佈探討

    最近在群裡有個朋友問了個問題是這樣的 用户表有一千多万行,主键是用户ID,我做了分区.但经常查询时,其它的表根据用户ID来关联,这样跨区查询,reads非常高.有什么好的处理办法?不分区的话,索引维护 ...

  4. 获取数值型数组中大于60的元素个数,给数值型数组中不足60分的加20分。(数组,for循环,if条件判断语句)

    package com.Summer_0420.cn; /** * @author Summer * 获取数值型数组中大于60的元素个数 * 给数值型数组中不足60分的加20分 */ public c ...

  5. 9.9递归和动态规划(八)——给定数量不限的硬币,币值为25分,10分,5分,1分,计算n分有几种表示法

    /**  * 功能:给定数量不限的硬币.币值为25分,10分.5分.1分,计算n分有几种表示法. */ public static int makeChange(int n){ return make ...

  6. thinkphp5ajax分頁&&搜索後分頁

    //控制器層 //分頁 public function list_january_table(){ //設置當前頁 $page = input("post.page") ? inp ...

  7. 大数据学习----day27----hive02------1. 分桶表以及分桶抽样查询 2. 导出数据 3.Hive数据类型 4 逐行运算查询基本语法(group by用法,原理补充) 5.case when(练习题,多表关联)6 排序

    1. 分桶表以及分桶抽样查询 1.1 分桶表 对Hive(Inceptor)表分桶可以将表中记录按分桶键(某个字段对应的的值)的哈希值分散进多个文件中,这些小文件称为桶. 如要按照name属性分为3个 ...

  8. 分酒问题(DFS解法)

    题目大概是这样: 已知有三个容量分别为3千克.5千克和8千克的并且是没有刻度的酒瓶,3千克和5千克的瓶子均装满了酒,而8千克的瓶子为空.现要求仅用这三个酒瓶将这些酒均分为两个4千克并分别装入5千克和8 ...

  9. 数据分箱:等频分箱,等距分箱,卡方分箱,计算WOE、IV

    转载:https://zhuanlan.zhihu.com/p/38440477 转载:https://blog.csdn.net/starzhou/article/details/78930490 ...

  10. 程序设计入门——C语言 第7周编程练习 2 鞍点(5分)(5分)

    2 鞍点(5分) 题目内容: 给定一个n*n矩阵A.矩阵A的鞍点是一个位置(i,j),在该位置上的元素是第i行上的最大数,第j列上的最小数.一个矩阵A也可能没有鞍点. 你的任务是找出A的鞍点. 输入格 ...

随机推荐

  1. ORACLE外连接实例

    --查询各个部门工资范围,按照1000~2000,2000~3000....这样的格式显示人数 -------------------方法一 select dept.dname ,nvl(ano,) ...

  2. 2017-2018-2 20165228 实验三《敏捷开发与XP实践》实验报告

    2017-2018-2 20165228 实验三<敏捷开发与XP实践>实验报告 相关知识点 (一)敏捷开发与XP 通过 XP准则来表达: 沟通 :XP认为项目成员之间的沟通是项目成功的关键 ...

  3. v$、v_$、gv$之间的关系

    本次实验测试,oracle数据库视图中v$,v_$,gv$之间的关系 总结: v_$是动态性能视图,通过sql查询数据库基表返回记录.例如,v_$database对象是视图类型,可对其它用户授权访问: ...

  4. DG备库,实时应用如何判断,MR进程,及MRP应用归档,三种情况的查询及验证

    本篇文档学习,DG备库,实时应用如何判断,MR进程,及MRP应用归档,三种情况的查询及验证 1.取消MRP进程 备库查询进程状态select process,client_process,sequen ...

  5. Unity 3D Shader流水线

    Unity开发VR之Vuforia 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...

  6. 20155219&20155224 《信息安全系统设计基础》实验一 开发环境的熟悉

    实验内容 实验两人一组,最多三人一组 可以使用自己的笔记本,也可以使用实验室台式机 使用实验箱作为超级终端. 实验中学到的知识点 交叉编译 宿主机与目标机 NFS 超级终端 file命令 实验步骤 实 ...

  7. PTA——类型转换

    PTA习题 7-6 厘米换算英尺英寸 (15 分) #include<stdio.h> int main(){ int a; int b,c; scanf("%d",& ...

  8. 20165313 《Java程序设计》第五周学习总结

    教材学习总结 下面是我认为的重点,不足之处还请谅解: 1内部类:在一个类中定义另一个类:外嵌类:包含内部类的类. 2内部类的类体中不能声明类变量和类方法:外嵌类的类体中可以用内部类声明对象. 3非内部 ...

  9. ionic中 ng-repeat下使用ng-model获取不到选中数据问题:

    在这种情况下点击了单选框并不能获取$scope.unitcode的值: <ion-list> <ion-radio ng-repeat="item in userInfos ...

  10. get android or ios appname

    get app name from GP or itunes var superagent = require('superagent'); var cheerio = require('cheeri ...