[R] Solving an optimization problem: selecting an "optimal" subset

Erwin Kalvelagen erwin.kalvelagen at gmail.com
Sat Jan 30 23:59:40 CET 2010


Dimitri Shvorob <dimitri.shvorob <at> gmail.com> writes:

> 
> 
> A 40-element subset proves too much :(
> 
> > Error: cannot allocate vector of size 554.1 Mb
> 
> Thanks, Bart!


I could solve a problem with n=200, k=40 with Cplex's MIQP solver in less than a 
minute, but that may depend heavily on the data. The model I used looks like:

 min (s-target)^2
 s = sum(i,p[i]*x[i])
 sum(i,x[i]) = k
 x[i] in {0,1}

One can replace the quadratic object by a linear one by minimizing the absolute 
deviation. That leads to a MIP model:

 min d1+d2
 s = sum(i,p[i]*x[i])
 sum(i,x[i]) = k
 d1-d2 = s-target
 d1,d2>=0  
 x[i] in {0,1}

----------------------------------------------------------------
Erwin Kalvelagen
Amsterdam Optimization Modeling Group
erwin at amsterdamoptimization.com
http://amsterdamoptimization.com



More information about the R-help mailing list