A set of 8 huge LP problems for IMPT

The following is the information for each LP problem associated with Task0, Task1, …, Task7 (see the reference list below for more details about the tasks). The data are binary, double precision, in the order of a,c,d,e,f,A as in

minimize <a,x>, subject to c<=Ax<=d and e<=x<=f.

The components of vector c,d,e,f can be infinite numbers (DBL_MAX in double precision in C language). The sparse matrix A is in column ordered sparse matrix form as described in the MOSEK documentation, which is standard in storage of huge sparse matrix. For example, it can be used in CPLEX and other LP solvers as well. The four arrays of the matrix A are in the order of ptrb, ptre, asub, aval. For a sample C code of how to read the data, see the Appendix Section below.

#Rows

#Columns

#NonZeros

Objective

Data

Task0

302,491

13,734

62,256,376

MIN

task0.dat (~750M)

Task1

314,546

13,735

74,554,123

MAX

task1.dat (~900M)

Task2

302,491

13,734

62,256,376

MIN

task2.dat (~750M)

Task3

302,491

13,734

62,256,376

MIN

task3.dat (~750M)

Task4

302,491

13,734

62,256,376

MIN

task4.dat (~750M)

Task5

302,491

13,734

62,256,376

MIN

task5.dat (~750M)

Task6

302,491

13,734

62,256,376

MIN

task6.dat (~750M)

Task7

604,982

13,735

124,754,745

MIN

task7.dat (~1.5G)

Contact Wei Chen at wchenwei@gmail.com for any question.

Reference

Appendix The sample code to read the data in C language:

char DataFileName[50] = "./0.dat"; FILE* file = fopen(DataFileName, "rb"); if(file == NULL){

cout<<endl<<"**** fail to open file "<<DataFileName<<" ****"<<endl;

return 0;

}else{

cout<<endl<<"Reading a, c, d, e, f and ptrb, ptre, asub, aval of A

from the binary file "<<DataFileName<<" ... ";}

fread(a, sizeof(double), numCol, file); fread(c, sizeof(double), numRow, file); fread(d, sizeof(double), numRow, file); fread(e, sizeof(double), numCol, file); fread(f, sizeof(double), numCol, file); fread(ptrb, sizeof(int), numCol, file); fread(ptre, sizeof(int), numCol, file); fread(asub, sizeof(int), numNonZeros, file); fread(aval, sizeof(double), numNonZeros, file);

fclose(file);