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

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

单纯形法

  注意:线性规划问题如果有最优解,必有一个顶点最优解。于是在可行域的顶点中寻找最优解就很自然了。可行域一般有无限多个点,但却只有有限多个顶点(从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. JavaWeb基础知识总结

    JavaWeb基础知识总结.   1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Internet上供 ...

  2. 2017-2018-2 20165228 实验四《Android程序设计》实验报告

    一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:苏祚堃 学号:20165228 指导教师:娄嘉鹏 实验日期:2018年5月14日 实验时间:13:45 - 3:25 实验序号:实验四 ...

  3. 关系数据库(MySQL)的规范化、以及设计原则

    1.了解范式(NF) 为了使得关系数据库能够符合规范理论,所有的数据库表都要满足:范式. 关系数据库的范式有五类:第一范式,第二范式,....第五范式.下面我们来了解一下前三个范式: 第一范式:简单来 ...

  4. [LeetCode&Python] Problem 13. Roman to Integer

    Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol Value I 1 ...

  5. Unity 3D光源-Directional平行光/逆光效果,光晕详解、教程

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

  6. HPU组队赛J:Ball King(线段树)

    时间限制 1 Second  内存限制 512 Mb 题目描述 HPU601球王争霸赛即将举行,ACMER纷纷参加. 现在有n个人报名参赛,每个人都有一个实力值 ai,实力值较大者获胜. 为保证比赛公 ...

  7. linux 系统 目录,以部分及相关命令

    linux 系统里的文件类型有: b. d.l. c. -  .s (块设备.目录.软连接.数字串设备.普通文件(文本.二进行文件).socket文件 ) ls 命令 ls -a  查看当前目录下的所 ...

  8. JavaSE笔记

    this关键字 哪个对象调用方法,方法定义中的this即为该对象的引用! static关键字 使用static声名的成员变量为静态成员变量,在第一次使用的时候被初始化,static成员变量只有一份 使 ...

  9. Django book manage system

    创建一个简易的可以增删改查book的书籍管理system urls.py from django.contrib import admin from django.urls import re_pat ...

  10. ng-repeat的用法:

    -------------------------------------转载: 遍历数组:    <li ng-repeat="item in array">{{it ...