Linp {LIM}R Documentation

Solves a linear inverse model using linear programming

Description

Solves a linear inverse model using linear programming
Input presented either:

  • 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(...)
    Linp.lim(lim,cost=NULL,ispos=lim$ispos,...)
    Linp.limfile(file, verbose=TRUE,...)
    Linp.character(...)
    Linp.double(...) 

    Arguments

    lim a list that contains the linear programming specification, as generated by function Setup
    file name of the linear 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

    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

    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

    Author(s)

    Karline Soetaert <k.soetaert@nioo.knaw.nl>

    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

      # 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)))
      

    [Package LIM version 1.1 Index]