lp.assign {lpSolve} | R Documentation |
Integer Programming for the Assignment Problem
Description
Interface to lp_solve
linear/integer programming
system specifically for solving assignment problems
Usage
lp.assign (cost.mat, direction = "min", presolve = 0, compute.sens = 0)
Arguments
cost.mat |
Matrix of costs: the ij-th element is the cost of assigning source i to destination j. |
direction |
Character vector, length 1, containing either "min" (the default) or "max" |
presolve |
Numeric: presolve? Default 0 (no); any non-zero value means "yes." Currently ignored. |
compute.sens |
Numeric: compute sensitivity? Default 0 (no); any non-zero value means "yes." In that case presolving is attempted. |
Details
This is a particular integer programming problem. All the decision variables are assumed to be integers; each row has the constraint that its entries must add up to 1 (so that there is one 1 and the remaining entries are 0) and each column has the same constraint. This is assumed to be a minimization problem.
Value
An lp
object. See documentation for details. The constraints
are assumed (each row adds to 1, each column adds to 1, and no others) and
are not returned.
Author(s)
Sam Buttrey, buttrey@nps.edu
See Also
Examples
assign.costs <- matrix (c(2, 7, 7, 2, 7, 7, 3, 2, 7, 2, 8, 10, 1, 9, 8, 2), 4, 4)
## Not run:
> assign.costs
[,1] [,2] [,3] [,4]
[1,] 2 7 7 1
[2,] 7 7 2 9
[3,] 7 3 8 8
[4,] 2 2 10 2
## End(Not run)
lp.assign (assign.costs)
## Not run: Success: the objective function is 8
lp.assign (assign.costs)$solution
## Not run:
[,1] [,2] [,3] [,4]
[1,] 0 0 0 1
[2,] 0 0 1 0
[3,] 0 1 0 0
[4,] 1 0 0 0
## End(Not run)