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

lp, lp.transport

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)

[Package lpSolve version 5.6.6 Index]