大规模问题的分解法-D-W分解法
大规模线性规划问题的求解极具挑战性,在效率、存储和数值稳定性等方面对算法都有很高的要求。但是这类问题常常非常稀疏且有特殊结构,能够分解为若干个较小规模问题求解。
线性规划问题的目标函数和非负约束都可分离变量,即分成相互独立的若干组。如果等式约束也可分离变量,则大规模问题就可分解为较小问题求解。
单纯形法
注意:线性规划问题如果有最优解,必有一个顶点最优解。于是在可行域的顶点中寻找最优解就很自然了。可行域一般有无限多个点,但却只有有限多个顶点(从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分解法的更多相关文章
- 计蒜客 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. ...
- 【转】mysql分库分表,数据库分库分表思路
原文:https://www.cnblogs.com/butterfly100/p/9034281.html 同类参考:[转]数据库的分库分表基本思想 数据库分库分表思路 一. 数据切分 关系型数 ...
- [心得] SQL Server Partition(表分區) 資料分佈探討
最近在群裡有個朋友問了個問題是這樣的 用户表有一千多万行,主键是用户ID,我做了分区.但经常查询时,其它的表根据用户ID来关联,这样跨区查询,reads非常高.有什么好的处理办法?不分区的话,索引维护 ...
- 获取数值型数组中大于60的元素个数,给数值型数组中不足60分的加20分。(数组,for循环,if条件判断语句)
package com.Summer_0420.cn; /** * @author Summer * 获取数值型数组中大于60的元素个数 * 给数值型数组中不足60分的加20分 */ public c ...
- 9.9递归和动态规划(八)——给定数量不限的硬币,币值为25分,10分,5分,1分,计算n分有几种表示法
/** * 功能:给定数量不限的硬币.币值为25分,10分.5分.1分,计算n分有几种表示法. */ public static int makeChange(int n){ return make ...
- thinkphp5ajax分頁&&搜索後分頁
//控制器層 //分頁 public function list_january_table(){ //設置當前頁 $page = input("post.page") ? inp ...
- 大数据学习----day27----hive02------1. 分桶表以及分桶抽样查询 2. 导出数据 3.Hive数据类型 4 逐行运算查询基本语法(group by用法,原理补充) 5.case when(练习题,多表关联)6 排序
1. 分桶表以及分桶抽样查询 1.1 分桶表 对Hive(Inceptor)表分桶可以将表中记录按分桶键(某个字段对应的的值)的哈希值分散进多个文件中,这些小文件称为桶. 如要按照name属性分为3个 ...
- 分酒问题(DFS解法)
题目大概是这样: 已知有三个容量分别为3千克.5千克和8千克的并且是没有刻度的酒瓶,3千克和5千克的瓶子均装满了酒,而8千克的瓶子为空.现要求仅用这三个酒瓶将这些酒均分为两个4千克并分别装入5千克和8 ...
- 数据分箱:等频分箱,等距分箱,卡方分箱,计算WOE、IV
转载:https://zhuanlan.zhihu.com/p/38440477 转载:https://blog.csdn.net/starzhou/article/details/78930490 ...
- 程序设计入门——C语言 第7周编程练习 2 鞍点(5分)(5分)
2 鞍点(5分) 题目内容: 给定一个n*n矩阵A.矩阵A的鞍点是一个位置(i,j),在该位置上的元素是第i行上的最大数,第j列上的最小数.一个矩阵A也可能没有鞍点. 你的任务是找出A的鞍点. 输入格 ...
随机推荐
- phpcms pc_base::load
//数据库pc_base::load_model(‘*_model’) 加载数据库模型 (一张表对应一个数据库模型类),即 modle/*_model.class.php每一个数据库模型类都会继承底层 ...
- 2.20 绕过验证码(add_cookie)
2.20 绕过验证码(add_cookie) 前言验证码这种问题是比较头疼的,对于验证码的处理,不要去想破解方法,这个验证码本来就是为了防止别人自动化登录的.如果你能破解,说明你们公司的验证码吗安全级 ...
- Python学习笔记第二十二周(前端知识点补充)
目录: 一.伪类 二.样式 1.字体 2.背景图片 3.margin和padding 4.列表属性 5.float 6.clear 7.position 8.text-decoration(a标签下划 ...
- ECONOMETRICS CHAPTER3
前几天看王垠的一篇文章谈数学与编程,说数学公式之所以难以理解是因为缺乏统一的形式,而且经常有未定义的变量出现.看这本书时也正有此感,所以有时不必要拘泥公式是否前后一致,理解意思要紧. ♣普通最小二乘法 ...
- 一个简单的 IDA f5插件问题分析
有人提出问题,以下汇编f5结果缺失代码: .text:00000C18 Java_com_a_b_c .text:00000C18 PUSH {R3,LR} .text:00000C1A CMP R2 ...
- jQuery的位置信息
<head> <meta charset="UTF-8"> <title>jquery的位置信息</title> <style ...
- AI之路,第一篇:python数学知识1
python 数学知识1 1,向量: 一个向量是一列数.这些数是有序排列的:通过次序中的索引,可以确定每个单独的数: 2, 矩阵: 由m x n 个数aij(i=1,2,3,…, m; j=1,2, ...
- java-Random类
1.Random类的概述和方法使用 * A:Random类的概述 * 此类用于产生随机数 * 如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数 ...
- 多线程线性 lock
有时我们lock一段代码或许要根据某个变量的值,值相同则不允许有两个或以上的方法并行运行,我在工作中就遇到了,有100个值,相同的参数值不能并行运行. 还有就是一个被lock的方法递归调用会不会死锁, ...
- iterm2字符输入换行遮挡问题
来源:http://wonderffee.github.io/blog/2013/08/15/solve-new-line-problem-in-terminal/ .bash_profile中 进行 ...