[R] lpSolve space problem in R 2.4.1 on Windows XP

Talbot Katz topkatz at msn.com
Fri Mar 9 18:39:20 CET 2007


Hello Sam Buttrey.

Uwe Ligges from the r-help list asked me to forward this message to the 
maintainer of the lpSolve package, because R 2.4.1 is crashing when I run 
lp.  I saw your name listed in the lpSolve help file.  If you need more 
detail, please let me know.  Thanks!

--  TMK  --
212-460-5430	home
917-656-5351	cell



>From: Uwe Ligges <ligges at statistik.uni-dortmund.de>
>To: Talbot Katz <topkatz at msn.com>
>CC: r-help at stat.math.ethz.ch
>Subject: Re: [R] lpSolve space problem in R 2.4.1 on Windows XP
>Date: Fri, 09 Mar 2007 17:51:30 +0100
>
>If R is closed that way (i.e. crashes), it is a bug by definition: either 
>in R or (more probable) in the package. Can you please contact the package 
>maintainer to sort things out.
>
>Thanks,
>Uwe Ligges
>
>
>
>
>
>Talbot Katz wrote:
>>Hi.
>>
>>I am trying to use the linear optimizer from package lpSolve in R 2.4.1 on 
>>Windows XP (Version 5.1).  The problem I am trying to solve has 2843 
>>variables (2841 integer, 2 continuous) and 8524 constraints, and I have 2 
>>Gb of memory.  After I load the input data into R, I have at most 1.5 Gb 
>>of memory available.  If I start the lp with significantly less memory 
>>available (say 1 Gb), I get an error message from R:
>>
>>"Error: cannot allocate vector of size 189459 Kb"
>>
>>If I close all my other windows and try to maximize the available memory 
>>to the full 1.5 Gb, I can watch the memory get filled up until only about 
>>400 Mb is left, at which point I get a Windows error message:
>>
>>"R for Windows GUI front-end has encountered a problem and needs to close. 
>>  We are sorry for the inconvenience."
>>
>>This behavior persists even when I relax the integer constraints, and 
>>eliminate the 2841 constraints that restrict the integer variables to 
>>values <= 1, so I'm just running a standard lp with 2843 variables and 
>>5683 constraints.
>>
>>I have been able to get the full MIP formulation to work correctly on some 
>>very small problems (~10 variables and 25 constraints).
>>
>>Here is the code for a working example:
>>
>>>library(lpSolve)
>>>(v1=rev(1:8))
>>[1] 8 7 6 5 4 3 2 1
>>>(csv1=cumsum(as.numeric(v1)))
>>[1]  8 15 21 26 30 33 35 36
>>>(lencsv1=length(csv1))
>>[1] 8
>>>(Nm1=lencsv1-1)
>>[1] 7
>>>(Np1=lencsv1+1)
>>[1] 9
>>>ngp=3
>>>f.obj=c(1,1,rep(0,Nm1))
>>>f.int=3:Np1
>>>bin.con=cbind(rep(0,Nm1),rep(0,Nm1),diag(Nm1))
>>>bin.dir=rep("<=",Nm1)
>>>bin.rhs=rep(1,Nm1)
>>>gp.con=c(0,0,rep(1,Nm1))
>>>gp.dir="<="
>>>(gp.rhs=ngp-1)
>>[1] 2
>>>ub.con=cbind(rep(-1,rep(Nm1)),rep(0,Nm1),!upper.tri(matrix(nrow=Nm1,ncol=Nm1)))
>>>ub.dir=rep("<=",Nm1)
>>>(ub.rhs=csv1[1:Nm1]*ngp/csv1[lencsv1])
>>[1] 0.6666667 1.2500000 1.7500000 2.1666667 2.5000000 2.7500000 2.9166667
>>>lb.con=cbind(rep(0,Nm1),rep(1,rep(Nm1)),!upper.tri(matrix(nrow=Nm1,ncol=Nm1)))
>>>lb.dir=rep(">=",Nm1)
>>>lb.rhs=ub.rhs
>>>f.con=rbind(bin.con,gp.con,ub.con,lb.con)
>>>f.dir=c(bin.dir,gp.dir,ub.dir,lb.dir)
>>>f.rhs=c(bin.rhs,gp.rhs,ub.rhs,lb.rhs)
>>>lglp=lp("min",f.obj,f.con,f.dir,f.rhs,int.vec=f.int)
>>>lglp$objval
>>[1] 0.9166667
>>>lglp$solution
>>[1] 0.0000000 0.9166667 0.0000000 1.0000000 0.0000000 1.0000000 0.0000000
>>[8] 0.0000000 0.0000000
>>
>>What this is doing is taking the points of v1 and dividing them into 
>>contiguous groups (the variable ngp is the number of groups) such that the 
>>sums of the v1 values are as close as possible to equal within the three 
>>groups.  So, for v1 = c(8,7,6,5,4,3,2,1), the groups c(8,7), c(6,5), 
>>c(4,3,2,1), with sums 15,11,10 is the best such split, and the solution 
>>vector shows that the splitting occurs after the second and fourth 
>>elements.
>>
>>
>>Anyway, I am wondering...  Are 3000 variables and 8500 constraints usually 
>>too much for lpSolve to handle in 1.5 Gb of memory?  Is there a possible 
>>bug (in R or in Windows) that leads to the Windows error when the memory 
>>falls below 400 Mb?  Is there a problem with my formulation that makes it 
>>unstable even after the integer constraints are removed?
>>
>>Thanks!
>>
>>
>>--  TMK  --
>>212-460-5430	home
>>917-656-5351	cell
>>
>>______________________________________________
>>R-help at stat.math.ethz.ch mailing list
>>https://stat.ethz.ch/mailman/listinfo/r-help
>>PLEASE do read the posting guide 
>>http://www.R-project.org/posting-guide.html
>>and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list