forum.alglib.nethttp://forum.alglib.net/ Linear Optimization with Sparse Matrixhttp://forum.alglib.net/viewtopic.php?f=2&t=4587 Page 1 of 1

 Author: burakozyurek [ Sun Nov 19, 2023 7:40 pm ] Post subject: Linear Optimization with Sparse Matrix Hello everyone!I am a biologist and trying to perform flux balance analysis(a biological simulation technique with constraint based linear optimization) with Alglib & C++. I was used minlpsetlc() function but I want to use minlpsetlc2() with sparse matrix because of performance issues. But minlpsetlc2() function returns a vector with size 3 instead of 13K(=columnsize). I was able to get vector with size 13K when using minlpsetlc. I expected that the function can inference the real size of my dense matrix which is approximately 8K x 13K. You can find my code below.One other thing: I assumed minlpsetlc2() perform calculations way faster than the other one. If not it is unnecessary to use this function for me. Thanks! Code:std::vector> S(rowsize, std::vector(colsize, 0));      int rowsize = 8460, colsize=12969;      alglib::sparsematrix A;      alglib::sparsecreate(rowsize, colsize, A);                // Fill sparse matrix      for (int i = 0; i < rowsize[code][/code]; i++)      {         for (int j = 0; j < colsize-1; j++)         {            S[i][j] = S_matrix[i * colsize + j];            alglib::sparseset(A, i, j, S[i][j]);         }      }      // ALGLIB PARAMETERS      alglib::real_1d_array x;      alglib::minlpreport rep;      alglib::minlpstate state;      // SET LINEAR SOLVER      alglib::minlpcreate(3, state);      // OBJECTIVE FUNCTION      std::vector f(colsize, 0);      //f[12790] = -1;      alglib::real_1d_array C = "[]";      C.setcontent(colsize, f.data());      alglib::minlpsetcost(state, C);      std::vector dummy(rowsize, 0);      alglib::real_1d_array d1 = "[]";      alglib::real_1d_array d2 = "[]";      d1.setcontent(rowsize-1, dummy.data());      d2.setcontent(rowsize-1, dummy.data());      minlpsetalgoipm(state, 0);      alglib::minlpsetlc2(state, A, d1, d2, rowsize);      //real_1d_array s = "[55557,3]";      //minlpsetscale(state,s);      //  SOLVE      // alglib::minlpsetalgodss(state, 0.9);      alglib::minlpoptimize(state);      // FLUX OUYPUTS      alglib::minlpresults(state, x, rep);      // set_single_behavior(pCell, "cycle entry", x[9]);      // PRINT THE RESULTS      printf("%s\n", x.tostring(2).c_str());

 Author: burakozyurek [ Sun Nov 19, 2023 7:43 pm ] Post subject: Re: Linear Optimization with Sparse Matrix I was emphasized that I am a biologist because I have no knowledge of linear programming or mathematics. I'm just trying to apply linear optimization to my cell simulations. :)

 Author: Sergey.Bochkanov [ Tue Nov 21, 2023 3:14 pm ] Post subject: Re: Linear Optimization with Sparse Matrix Hi!Why do you create the solver with minlpcreate(3,..)? You have colsize variables, and colsize=12969 in your case.Speaking of the performance, yes, setlc2() is much more efficient than setlc() with twice as many rows.

 Page 1 of 1 All times are UTC Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Grouphttp://www.phpbb.com/