0

I'm trying to use QuadProg++ library. The problem is that my CI variable is enormous. Up to 40,000 * 20,000. With this size, it will take too much memory (12GB at least.....). I have 2 questions: 1.- There are any way to give to the "solve_quadprog" function different data types than double for the matrix? I tried with short, but it didn't allowed me. 2.- Anyone knows how to solve this size problem? this CI variable is very simple in fact, only a diagonal with all 1's, and other diagonal with all -1 (all other values are 0)

If is possible to solve these problems using another library (with solves the quadratic programming problem) is not a problem too. Any solution will be appreciated Thanks in advance

selmo12f
  • 3
  • 4
  • 12 GB isn't that unreasonable on a 64-bit machine. Perhaps 8 GB of RAM and a 4 GB swap file would work. Otherwise the library might have support for a "sparse matrix" which doesn't store all the zeros. – Bo Persson Aug 25 '15 at 13:49
  • If you really only have values set on the two diagonals, then it will be much more memory- and compute-efficient to use a quadratic programming solver that accepts sparse problem representation. [Here](http://www.alecjacobson.com/weblog/?p=1996) are one group's investigation into options (most options for matlab), and [here](http://www.r-bloggers.com/sparse-quadratic-programming-with-ipoptr/) is an R solution using ipopt. ipopt [has a C++ interface](http://www.coin-or.org/Ipopt/documentation/node23.html), so you may be able to follow that to sparsely solve your problem. – josliber Aug 25 '15 at 14:31

0 Answers0