主管:中国科学院
主办:中国优选法统筹法与经济数学研究会
   中国科学院科技战略咨询研究院

中国管理科学 ›› 2017, Vol. 25 ›› Issue (10): 100-108.doi: 10.16381/j.cnki.issn1003-207x.2017.10.011

• 论文 • 上一篇    下一篇

超大规模线性规划的稀疏存储和预处理中比例行的检测和处理方法

武昱1,2, 黄思明1   

  1. 1. 中国科学院科技战略咨询研究院, 北京 100190;
    2. 中国科学院大学, 北京 100049
  • 收稿日期:2016-06-30 修回日期:2017-02-14 出版日期:2017-10-20 发布日期:2017-12-15
  • 通讯作者: 武昱(1986-),男(汉族),甘肃人,中国科学院博士研究生,研究方向:大规模线性规划及在线算法,E-mail:wuyu14@mails.ucas.edu.cn. E-mail:wuyu14@mails.ucas.edu.cn

Sparse Storage for Super-large-scale Linear Programming and Methods for Identifying and Disposing of Duplicate Rows in its Presolving

WU Yu1,2, HUANG Si-ming1   

  1. 1. Institutes of Science and Development, Chinese Academy of Sciences, Beijing 100190, China;
    2. University of Chinese Academy of Sciences, Beijing 100049, China
  • Received:2016-06-30 Revised:2017-02-14 Online:2017-10-20 Published:2017-12-15

摘要: 随着大数据时代的到来,线性规划问题的规模越来越大是一种必然。面对超大规模线性规划问题,如何存储数据,使得存储空间节省以避免资源的浪费,并且使得数据的查询、修改和增删方便快捷,是一个急需解决的问题。本文提出了基于十字链表的数据稀疏存储方式。并且,通过对Netlib数据库中的超大规模线性规划问题进行存储分析,对此种存储方式的优越性进行了验证。此外,由于大量冗余数据的存在,在应用算法求解超大规模线性规划问题之前,往往需要进行预处理,而比例行的检测和处理是预处理中必要的关键一步,因此本文提出了比例行的检测和处理方法。首先给出了不同于常理的比例行及其他相关概念的定义;然后结合本文提出的数据存储方式,提出了简单易操作的比例行检测方法;接着总结已有文献得出了比例行消除操作的两个基本原则,并在此基础上通过对比例行所含有的非零元素进行分类,通过理论分析推导出了保证约束矩阵稀疏度不降且单独列增加的比例行处理方法。最后,首先通过一个微型算例对比例行检测和处理的具体过程进行了演示和分析,然后通过Netlib数据库中的6个实际线性规划问题,对比例行检测和处理方法真正作用于超大规模线性规划问题时的效果进行了验证。

关键词: 线性规划, 预处理, 十字链表, 稀疏存储, 比例行

Abstract: With the arrival of the big data era, it is certain and inevitable that the size of linear programming problem is becoming bigger and bigger. In response to super-large-scale linear programming problems, in order to save the storage space,avoid waste of resources, and make the data's inspecting, modifying and striking out more convenient, how to store data is an urgent and important problem. In this paper, a data structure for data's sparse storage is proposed, which is based on improved Orthogonal List. The performance of this method on saving storage space is verified by some super-large-scale linear programming cases from the Netlib database. Furthermore, due to the existing of much redundant data, a presolving process is often required before algorithm is used to solve the linear programming problem. Identifying and disposing of duplicate rows is one of the key steps. In this paper, the methods for identifying and disposing the duplicate rows are proposed. Firstly, the definition of duplicate rows and other related concepts are given. Duplicate rows' definition is different from common sense, in which columns with only one non-zero element have not been take into account. Secondly, combined with the proposed data storage structure, a simple method for identifying duplicate rows is proposed, which is based on classification thought and is very easy to operate.It only needs to inspect one time from the first column to the last column. Thirdly, by summarizing the existing related literature, two basic principles for eliminating redundant rows are obtained. The first step is to increase the number of one-element columns as much as possible, and the second is to reduce the number of the non-zero elements as much as possible. Then, based on these two principles, the nonzero elements of duplicate rows are classified into different sets and further the number of nonzero elements within each set is theoretically analyzed. A method for disposing of duplicate row is obtained, which not only guarantee the data's sparse degree, but also increase the number of one-element column. In the last part, firstly, through applying the proposed methods on a mini linear programming example, the concrete process of Identifying and Disposing of Duplicate Rows is exemplified. Secondly, by applying the proposed methods on some concrete linear programming cases which are selected from the Netlib database, the effectiveness of the methods is verified. From the result, it can be seen that when the proposed data structure and the methods are applied on small-scale linear programming problems or linear programming problem with little duplicate rows, their advantage may be negligible or not obvious. However, when in response to large-scale linear programming problems with dense duplicate rows, the larger the scale or the denser the duplicate rows, the more obvious the effectiveness is.

Key words: linear programming, presolving, orthogonal List, sparse storage, duplicate rows

中图分类号: