Learn R Programming

LIM (version 1.4.7.1)

Linp: Solves a linear inverse model using linear programming.

Description

Solves a linear inverse model using linear programming

Input presented either as:

  • matrices E, F, A, B, G, H (Linp.double) or

  • as a list (Linp.lim) or

  • as a lim input file (Linp.limfile)

Usage

Linp(...)
# S3 method for lim
Linp(lim, cost = NULL, ispos = lim$ispos, ...)
# S3 method for limfile
Linp(file, verbose = TRUE,...)
# S3 method for character
Linp(...)
# S3 method for double
Linp(...)

Value

a list containing:

X

vector containing the solution of the linear programming problem.

unconstrained.solution

vector containing the unconstrained solution of the linear programming problem.

residualNorm

scalar, the sum of residuals of equalities and violated inequalities.

solutionNorm

scalar, the value of the quadratic function at the solution.

IsError

logical, TRUE if an error occurred.

Error

linp error text.

type

linp.

Arguments

lim

a list that contains the linear inverse model specification, as generated by function setup.limfile.

file

name of the inverse input file.

verbose

if TRUE: when reading the file, prints warnings and messages to the screen.

cost

if not NULL, a vector with the coefficients of the cost function (to be minimised).

ispos

if TRUE: all x-values have to be positive.

...

other arguments passed to function linp from packagelimSolve.

Author

Karline Soetaert <karline.soetaert@nioz.nl>

Details

Solves the following inverse problem: $$\min(\sum {Cost_i*x_i})$$ or $$\max(\sum {Profit_i*x_i})$$ subject to $$x_i>=0$$ $$Ax=B$$ $$Gx>=H$$

and where \(Cost_i\) or \(Profit_i\) are weighting coefficients

References

Michel Berkelaar and others (2005). lpSolve: Interface to Lpsolve v. 5 to solve linear/integer programs. R package version 1.1.9.

See Also

linp, the more general function from package lpSolve

Ldei, to solve the linear inverse problem by least distance programming

Lsei, to solve the linear inverse problem by lsei (least squares with equality and inequality constraints)

function linp from packagelimSolve

Examples

Run this code
  # the Blending example
  Linp(LIMBlending)

  # the E coli example: two functions to maximimise
  Linp(LIMEcoli)
 
  # E coli example, but only first function optimised..
  Linp(LIMEcoli, cost = -LIMEcoli$Profit[1,])

  # a foodweb example: need to specify the cost function
  # here just sum of absolute values of flows...
  Linp(LIMRigaAutumn, cost = (rep(1, LIMRigaAutumn$NUnknowns)))

Run the code above in your browser using DataLab