Haio
2012-May-08 17:21 UTC
[R] Translation of Linear minimization probelm from matlab to r
Hi everyone, i?m a new user of R and i?m trying to translate an linear optimization problem from Matlab into r. The matlab code is as follow: options = optimset('Diagnostics','on'); [x fval exitflag] = linprog(f,A,b,Aeq,beq,lb,ub,[],options); exitflag fval x=round(x); Where: f = Linear objective function vector (vector of 45,rows) A = Matrix for linear inequality constraints (3colums 45 rows matrix) b = Vector for linear inequality constraints (3 rows vector) Aeq = Matrix for linear equality constraints (45 colums, 8 rows ) beq = Vector for linear equality constraints (8 rows vector) lb =Vector of lower bounds (45 rows) ub = Vector of upper bounds (45 rows) I have tryed the package "linprog" although i can?t find anyway to include the linear inequality constraints into the "solveLP" function. Can anyone please help me? -- View this message in context: http://r.789695.n4.nabble.com/Translation-of-Linear-minimization-probelm-from-matlab-to-r-tp4618123.html Sent from the R help mailing list archive at Nabble.com.
Petr Savicky
2012-May-08 19:45 UTC
[R] Translation of Linear minimization probelm from matlab to r
On Tue, May 08, 2012 at 10:21:59AM -0700, Haio wrote:> Hi everyone, i?m a new user of R and i?m trying to translate an linear > optimization problem from Matlab into r. > > The matlab code is as follow: > options = optimset('Diagnostics','on'); > > [x fval exitflag] = linprog(f,A,b,Aeq,beq,lb,ub,[],options); > > exitflag > fval > x=round(x); > Where: > f = Linear objective function vector (vector of 45,rows) > A = Matrix for linear inequality constraints (3colums 45 rows matrix) > b = Vector for linear inequality constraints (3 rows vector) > Aeq = Matrix for linear equality constraints (45 colums, 8 rows ) > beq = Vector for linear equality constraints (8 rows vector) > lb =Vector of lower bounds (45 rows) > ub = Vector of upper bounds (45 rows) > > I have tryed the package "linprog" although i can?t find anyway to include > the linear inequality constraints into the "solveLP" function.Hi. I am not sure, what is the problem with the constraints. According to the documentation of the function solveLP(), the constraints are provided as the arguments "bvec" and "Amat". However, i am using "lpSolve" package and have no experience with "linprog" package. An example of solving a simple linear program using lpSolve follows. Consider the problem to maximize 3*x + 2*y with the constraints x >= 0 y >= 0 x + y <= 3 2*x + y <= 5 x + 2*y <= 5 then try library(lpSolve) crit <- c(3, 2) mat <- rbind(c(1, 1), c(1, 2), c(2, 1)) rhs <- c(3, 5, 5) dir <- rep("<=", times=3) out <- lp("max", objective.in=crit, const.mat=mat, const.dir=dir, const.rhs=rhs) out Success: the objective function is 8 out$solution [1] 2 1 Hope this helps. Petr Savicky.